Trattandosi di "seriale", il trasferimento dei dai è appunto "seriale", ovvero un byte per volta, per cui l'interpretazione del blocco non è corretta.
Non ho idea di come funziona la libreria di gambas, non gli ho dato un'occhiata, ma penso che la ricezione dei caratteri avvenga tramite una logiga non interrupting, ovvero leggendo il buffer a tempo e/o a mezzo di logica analoga (es. un polling sullo stato dei segnali di controllo).
Secondo me puoi attivare du logiche parallele, ovvero capire quanto inizia e termina un messaggio, e attivare un timer di timeout, che viene resettato dalla ricezione dell'ultimo byte, onde evitare che scatti.
Una volta che hai ricevuto tutto il buffer, la logica soprastante lo preleva e ci fà quello che deve, reimpostando la trasmissione per la ricezione successiva.
Per evitare di perdere dati, potresti impostare una fifo, che accoda i caratteri che la seriale riceve, in modo che non ti perdi nulla, e da questa estrai mano mano le stringhe in modo più comodo...