It is most likely to be the baud rate that is wrong. The most likely cause of that is that the system clock isn't running at the rate you think it is, or you've missed a divider in the chain, or you've got an "off by one" bug where you program a register with "N" to get a division ration of "N+1" or "N-1" and you've missed that.
The standard why-would-you-do-anything-else way of fixing this is to use an oscilloscope on the pin and MEASURE what it is actually doing. That will tell you what factor you're out by, either *2 or /2, or 15/16 and that will lead you to the programming problem.
If you don't have one, then find a friend or school that has and go there.
If you still can't do that, write some code to program a timer to flash a LED at a rate you can count or measure on a stopwatch. That may show you the problem.
Before that you should read all the relevant sections of the CPU Reference Manual and cross-check with all the generated code and work out the timing chain yourself.
Tom