Так надо складывать символы, тогда и всё будет правильно.
GetByte возвращает 1 символ.
Складываете в буфер, ищите начало и конец пачки, проверяете CRC, если всё сошлось - анализируете содержимое.
Иначе никак.