Причину проблемы обнаружили, но пока не знаем как исправить. Пакеты TCP/IP имеют (по умолчанию) размер 8192 байта, и если команда не помещается целиком в пакет, то приходит за два захода, один обрезанный, а затем остаток.
Теоретически можно в Digitals дождаться второго пакета и объединить их, но как узнать где начинается одна команда и заканчивается другая. Добавлять сейчас обязательный символ-разделитель конца команды не хочется, так как всем придется переделывать свои программы.
Как вариант можно увеличить размер пакета где-то в реестре Windows. Еще вам имеет смысл усекать число десятичных знаков после точки используя FloatToStrF(F,ffFixed,15,2) вместо FloatToStr.