You didn't show your code, but since it's the first character which gets corrupted, it reminded of another serial-port example I have, in which the author claimed you need to change the CR to a newline.
$ob = Device::SerialPort->new($PORT) || die "Can't Open $PORT: $!";
$ob->baudrate(9600) || die "failed setting baudrate";
$ob->parity("none") || die "failed setting parity";
$ob->databits(8) || die "failed setting databits";
$ob->stty_icrnl(1) || die "failed setting convert cr to new line";
$ob->handshake("none") || die "failed setting handshake";
$ob->write_settings || die "no settings";
I'm not really a human, but I play one on earth.
flash japh