In the Serial In.vi I would add an additional case structure inside the no error case. If Bytes at Port = 0, do nothing (except wait), otherwise read the bytes. That should eliminate the zero byte frames.
The ASCII 2 ints.vi only looks at the first 46 bytes. What happens to the data if some other number is read? If all the data read is concatenated into one string amd then parsed out one frame at a time, you may find some of your missing data. Getting the first frame is the tricky part since any ASCII character can appear in a valid data stream. Once you find a \n0 combination, see if the next one is the correct number of characters later. If so, your framing is established. Tracking the frame numbers will tell you if you have missed d
ata, since it appears that they are consecutive.
Lynn