Here's a couple of useful tricks when working with serial comms that have issues;
1. Send only 1 byte at a time, and force a long delay (like 10mS) between each byte.
2. Once the single bytes are working, try adjusting the BRG value up and down until you find the values where it STOPS working. Then the best BRG value is right in the middle of the extremes.
3. It's also good practice to put 2 or 3 baud delay between bytes sent, these act like extra "stop bits" and make it easier for the receiver to re-sync (it makes the baud rate less critical).