Потеря данных не связана с именованными каналами. Это влияет на COM-порты (эмулированные и физические), которые могут потерять данные, поскольку они работают с небольшим буфером в UART.
Именованный канал получает все данные, записанные в COM-порт. Ваша программа читает данные из именованного канала и записывает их в другой именованный канал. Именно здесь может возникнуть потеря данных, если вы слишком быстро напишите, UART принимающего COM-порта может переполниться, что приведет к потере данных.
Возможно, вам потребуется добавить некоторую задержку, чтобы избежать превышения скорости передачи, ожидаемой принимающей стороной.
Кроме того, в вашей программе пропущено ResetEvent()
вызовов.
При возникновении проблем с KD вам может потребоваться добавить resets=0
в строку подключения.