Вы не описываете, как вы объединяете трафик нескольких клиентских потоков в один исходящий поток. Простое произвольное помещение кусков клиентского трафика в поток гарантировано не работа. Принимающая сторона на противоположном конце интертубы не будет знать, какие байты принадлежат какому разговору.
Я бы рекомендовал вам сначала сосредоточиться на противоположном конце. Какая машина существует, что она делает, что нужно знать о множественных клиентах на локальном конце.