Lost/Repeated/Partial packets

I’m using the RCM5600W as a gateway between my micro and the Wifi.
I have a micro that communicates with my Java Application using frames sent over the serial link.
My serial link is 76,800 bps, standard 8 bit, 1 stop bit, no parity.
My frames are always 9 bytes each that include header of 0xA5 and trailer of 0x5A.
A typical frame looks like A5, 09, 7B, 05, 04, 00, 00, 00, 5A.

My questions are:

  1. Sometimes the input buffer “splits” a frame in two separate messages (truncated) for ex. the frame I showed above is received as:
    a. Msg 1: A5, 09
    b. Msg 2: 7B, 05, 04, 00, 00, 00, 5A
    Now, it is not very critical as I can take care of this with double buffering, but I’m curious here if that can be controlled such that I always get 1 message .
    Basically i want to find a way to let the RCM5600W to wait till it gets all 9 bytes before it assembles a TCP packet. (Right now it kind of “rushes” out and send the first two bytes in one packet and follows with another packet of the remaining 7 bytes)

  2. The communication between the rabbit any my WiFi node is done by TCP packets, a reliable communication. Is it safe to assume that TCP would “make sure” that i don’t have lost packets?
    I’m stating that as I find that sometimes I have issues/bugs in data received. The issue is incomplete frames. For ex. I marked in red a frame that started fine A5 9 7B and either the remaining was lost or got cut so a repeating frame followed A5 and then another repeating frame that was actually good. A5 9 7B 5 B FF 0 0 5A
    A5 9
    7B 5 4 FF A1 0 5A
    A5 9 7B
    A5 9 7B 5 B FF 0 0 5A
    A5 9
    7B 5 4 FF A1 0 5A
    A5 9
    7B 5 B FF 0 0 5A

I would appreciate any help here to solve this issue. - Thank you.