val() sagt mir spontan nichts.
Aber hast du mal versucht deinen String in einzelne Zeichen zu splitten und an val() zu übergeben?

So Richtung.. serialport1.WriteLine(val(erstes Zeichen) & val(zweites Zeichen) & val(drittes Zeichen) & .......)

Wär mal so'n Schuß ins Blaue von mir