I modified Arduino 0017 to use the Arduino 0016 baud rate register setting code and everything works perfectly.
On the surface it would appear that the 2X mode is the problem but if I pull the X-Bee and plug directly into my board using a USB to Serial cable it works perfectly with the original Arduino 0017 using 2X mode. So the problem is a combination of 2X mode and an X-Bee. It's possible it's the X-Bee and I haven't tried swapping them yet.
I wrote a test program for the baud rate setting code from both Arduino 0016 and 0017. I compared the results to table 19-12 from page 203 of the ATmega48PA/88PA/168PA/328P datasheet and the baud rate register settings are correct. Arduino 0017 will use the 2X mode for baud rates 2400, 28800, 57600, 115200 and 230400.
I will test my board at some of the other baud rates that use 2X mode in the next day or two and report my findings.
Since there are only a couple of people having this problem I'm not sure how much trouble shooting time this problem warrants. My application is not time/speed dependent so I'm planning on switching to a baud rate that does not use 2X mode.