innanzitutto bisogna essere sicuri che Arduino trasmetta i dati in formato UTF8, se sono solo caratteri stampabili non dovrebbero esserci problemi, ma se ci sono anche caratteri speciali o se la trasmissione è su dati binari questo può essere un problema.
Secondo me però il problema è che il sistema è più veloce di quello che pensi tu, e quindi nel momento in cui Arduino trasmette 12 caratteri, in realtà la Sub AStream_NewData viene chiamata due volte (o anche più) ad esempio viene chiamata una prima volta per dirti che ha ricevuto 7 caratteri e poi viene richiamata per dirti che ne ha ricevuti altri 5.
Vedo però che hai (giustamente) fatto il LOG, per cui tu nel LOG cosa vedi ??
Sicuro che i dati ricevuti sono tutti stampabili ???
Sergio