Are these two slaves identical hardware?
Can you show the MSG config details for the one that is working?
What is the nature of the data you are requesting? I ask because if it is 32 bit integers or floats, the slave might complain if you were to, for example, make a request starting with the 2nd word that is part of one of those data types. Your MB Data Address being 2 made me think about that possibility.
The error code would reveal that sort of complaint from the slave. The error code will disappear when the MSG is retriggered.
As for your logic structure, I normally recommend sequencing that waits for a DN or ER bit from each MSG before moving to the next. For a hardwired network, you can probably set the timeout word for each message to 1 second. That will improve performance if/when one of the slaves is non-responsive.
EDIT: That error you just posted (timeout in local processor) is the most common that you would see for anything all the way from improper wiring to a slave that is turned off or just ignoring the message.
Your MB data address is different in the two MSG blocks. That is the starting address of the block of data, so if these two slaves are the same type of hardware, they should both have the same MB data address if you are requesting symmetrical blocks of data from both slaves.
Also, many Modbus devices (most all VFDs) require a power cycle following any changes to the serial port settings, so the Slave ID number or baud rate might not take effect until you fully power down the device and power it back up.