Speed problems in homemade RS232-to-TTL converter board
It is probably the crystal on your target board.

A 16 MHz rock probably can't generate a clock for 115200 baud exactly enough.  Over a long enough continuous stream of characters, the clocks on the two devices will slide out of sync.  Eventually, you will get a framing error and a bad character, and the devices will resynchronize on the next falling edge (START bit).

The fact that your errors are roughly periodic tends to support this hypothesis.  I saw a similar problem (at much lower speed) on a modem line to a minicomputer many, many years ago.

If you can feed your UART with a clock that is exactly correct for 115200, do that, and see what happens.  (If you have access to a really good, EXPENSIVE, signal generator, use that.)