Возможно проблема в следующем: когда в строку засовываешь пакет, и гдето посередине пакета идет подряд 2 нуля, то паскаль считает это концом строки, забывая про оставшуюся часть.
Когда у меня была такая проблема, то я сначала делал StrToHex и только в хекс виде заносил в стринг. Но можно хранить пакет в массиве байтов, это будет даже лучше.
ПС: темку быстро пробежал глазами, если не правильно понял суть, то ногами не бить