capzap, Вы немного не разобрались. В причине. TCP сторону можете пока не рассматривать там уже никаких CRC нет, ошибка возникает до отправки ответа МКОНом в TCP об этом говорит ошибка в сниффере самого МКОН (он тоже не смог разобрать неполный пакет), о чем сообщил в журнал.

Код:
CRC считается верно, просто она 0x0064 в данном примере, 
далее прошивка "получает" пакет 17 02 01 01 64 00, 
по какой-то причине, далее в обработчик передаётся пакет на один байт короче 17 02 01 01 64, 
от которого затем откусывается CRC16 (два байта) и остается уже 17 02 01
которые уже обрабатывает сниффер, и к которым уже добавляется TCP обвязка.

Я проводил разные эксперименты, "теряется" всегда этот байт даже если в ответе будет много байт данных, главное условие чтобы CRC16 была меньше или ровна 0x00FF.