Возможно это поможет.
У меня была аналогичная проблема (и вообще куча проблем), когда я пытался читать из порта побайтово. Всё решилось, после перехода на чтение пакетами (пакет состоял из 4-х байт). А вообще, могу посоветовать глянуть на
www.torry.net там куча компонентов по работе с КОМ-портом с исходниками.
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague