Probabilmente non aspetti abbastanza durante l'arrivo dei dati.

Prova ad inserire un ciclo di ritardo nell'evento data_arrival oppure controlla che il parametro bytesTotal corrisponda al numero di caratteri che dovrebbero arrivare.

e cmq mi pare che quell'evento venga generato solo all'arrivo del primo carattere (non e' come nelle comunicazioni seriali via COM)