Ну вот и косяк найден... в функции инициализации COM порта размер буфера стоит 0. Так было в примере, с которого я взял этот код. Поставил размер 32 и все заработало, считывается вся посылка. Всем спасибо за помощь!