Java sockets, not all data transmitting, doesn't get to Wireshark

I have system where 100’s of clients connect to a server, via sockets, that I control.

When sending messages 99% of the clients work fine.

However, I have an issue with 1 client.
Everything works fine, then suddenly I will only get communication from the client, and I cannot send anything. The client will then timeout, reconnect fine, and the process begins again 5-10 minutes later.

Looking on Wireshark, when this occurs, data from the client is received, and acks sent. However, anything I send down the socket doesn’t make it to Wireshark.

The data is sent via nio sockets within java, where socketChannel.write returns a positive number, indicating that data is being sent.

Any ideas on where to start looking? It is almost like data is backing up somewhere on the server (possibly needs to be flushed somehow?), but I wouldn’t even know where to begin looking.