У вас период вызова задачи = 3 мс.
Судя по этой фразе: "предположим, между вызовами данные по сети поступили дважды" - внешнее устройство отправляет данные циклически и с минимальными интервалами между пакетами.
При этом "потеря данных уже есть, хотя и редко - пару раз в сутки."
В рамках решаемой задачи потеря пары пакетов при такой интенсивности обмена - критична?
Или данные в каждом пакете уникальны?
Вообще, у вас множество вариантов - например, отказаться от прибора с таким специфическим протоколом и принципом обмена, и использовать вместо него устройство, которое само будет выступать сервером данных (например - по стандартному Modbus TCP). Или поднять TCP Server за пределами CODESYS - под Raspberry должно быть уже множество готовых вариантов, в т.ч. и ориентированных на производительность.