What is the Modbus data that you need to read ? In general the most efficient thing to do is use just one message to read a block of Modbus registers.
I think the SLC implementation might limit you to 255 holding registers at a time, since that's the maximum SLC data table size to use as the destination.
If you have to read multiple blocks of registers, or different types of data using different Modbus commands, I typically write a simple state machine to increment an index register, and use "Index Register equals X" to trigger an MSG instruction. Some folks prefer to "chain" together their MSG instructions so that each /DN bit triggers the next /EN bit, but that sort of logic takes more work to revise when you want to change the order of the messages.