PIC16F1788 - how can I reliably determine when EUSART byte transmit is complete?
I just had a look at the datasheet. The TRMT flag is set when the transmit shift register is empty, but before the stop bit has been sent (figure 28-3 shows it being set halfway through). This means you are probably clobbering the stop bit, which is causing the observed errors. Might be worth confirming this with an oscilloscope if you have one, but it looks like the most obvious explanation.

The simplest solution is just to delay for at least one stop bit time after your TRMT polling loop. Another option is to enable 9-bit mode and make the extra bit another stop bit, though you will then be sending two stop bits between sequential bytes which will slightly reduce data throughput.