Think about the 1024 bytes that are sent as being a single frame that is transmitted. These frames are basically sent over as multiple bursts of data. If you just read the first 1024 bytes you receive and assume that’s a frame, then you’ll most likely be off by a little, reading some of a previous frame and some of the next frame. This will make everything look all distorted.
If you can, depending on the environment, detect the beginning or end of a burst, you should be able to just throw out the data you have for the previous frame.