En principio, me alegro que lo hayas resuelto y que claramente tenías razón en que el problema estaba en el Arduino o mejor dicho en como estaba programado el Arduino.
Evidentemente algo se debe modificar en el primer programa y debería funcionar.
Cuando no veo cosas como esta y esto para la próxima duda o consulta:
// ambos ejemplos son imaginarios
#include <Modbus.h> // https://github.com/arduino-libraries/Modbus
#include <ModbusIP.h> // https://github.com/arduino-libraries/ModbusIP
Resulta dificil seguir el problema.
Yo tengo simuladores ModBus asi que podría haber probado tu código y cuando vienen consultas de este tipo realmente las disfruto porque de los problemas de otros uno aprende a resolver o evitar los propios.
Bueno, para la próxima ya sabes y de nuevo felicitaciones por resolver el problema.