Alla fine ho risolto impostando un altro encoding per la porta seriale, così:
Me.com0new.Encoding = System.Text.Encoding.GetEncoding(1252)
Però adesso ho notato la presenza di un altro problema. Invio il messaggio al dispositivo che lo aspetta, il dispositivo manda la risposta... ma questa risposta non viene vista dal programma in VB2005!
So che la colpa NON è del dispositivo che risponde, perchè funziona usando una versione in VB6 del programma, che "ascolta" la seriale con la seguente istruzione:
comRx = frmMain.com0.Input
(sì, nella versione in VB6 la porta seriale si chiama com0, NON com0new)
Invece, la versione in VB 2005, che usa la seguente istruzione:
comRx = frmMain.com0new.ReadExisting()
...se ne frega bellamente di tutto quello che dovrebbe ricevere, e la stringa comRx resta sempre vuota!