C holding регистрами так не получится - они могут изменяться только со стороны мастер-устройства (и поэтому действительно не восстанавливают свои значения из RETAIN).
Вы можете использовать Modbus TCP Slave из библиотеки OwenCommunication - у него этого недостатка нет.
Просто объявите буфер слэйва в RETAIN.
https://youtu.be/l-oWDtOzBJg