Ethernet Modbus/TCP
Good. It's easy to maintain all 10 TCP connections concurrently via the Modbus/TCP Client Device - you need 10 of them, one for each slave. Then in each slave's specific set of MRX/MWX instructions choose one specific Modbus/TCP Client for THAT specific slave.
Slave #1 - Doing 1 MRX and 1 MWX, use Modbus/TCP ClientA in those 2 instructions
Slave #2 - Doing 2 MRX's and 1 MWX, use Modbus/TCP Client ClientB in those 3 instructions
Slave #3 - Doing 1 MRX, use Modbus/TCP Client ClientC in that one MRX
...
Slave #10 - Doing 1 MRX and 1 MWX, use Modbus/TC: ClientJ in those 2 instructions
Each Client has its own state machine, able to maintain the TCP connection state.
It's like having 10 telephones to 10 different people. You can maintain 10 connections with 10 phones. If you only had 1 phone, but 10 different people, you would have to call person#1, read/write, hang up. Call person #2, read/write, hang up. Call person #2, read/write, hang up. Etc. Etc. Etc.
With 10 different Modbus/TCP Client devices, it's like having 10 telephones, so each phone connects to a specific slave the first time, but then maintains its connection because you never change the slave for THAT specific client.