Help with ModBus RTU Master-Slave: SimpleModbus [SOLVED]

you can read more than one byte per packet. This will spare at least your first 6 Packets from your current example.
I follow this logic

modbus_construct(&packets[PACKET0], 1, READ_INPUT_REGISTERS, 0xStartadress, BytesToReads, FirstRegisterIndex);

in your case
modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 0, 5, 0);
will do the same like your first 5 rows.

This makes no sense for me

modbus_construct(&packets[PACKET6], 1, READ_HOLDING_REGISTERS, 5, 2, 5);
modbus_construct(&packets[PACKET7], 1, READ_HOLDING_REGISTERS, 6, 2, 6);
modbus_construct(&packets[PACKET8], 1, READ_HOLDING_REGISTERS, 7, 2, 7);

PACKET6 will write in data and sets Register 5 and 6, because you are requesting 2 bytes.
PACKET7 will read again data and sets Register 6 and 7 ...
PACKET8 will read data and sets Register 7 and 8

so you are reading byte 6 and 7 two times.

try to reduce the packets but without exceeding the internal buffers.