I struggled a lot with modbus devices (plc's).
I'm mostly a beginner here, so my idea is just an idea. It worked for me, that's it.
I had several disconnections for unknown reasons too.
Instead of polling different adresses, I changed the way my poll works. I now poll an array of contiguous data and parse them. And I poll more often to avoid disconnections or errors and keep a steady flow.