The Modbus spec numbers items from 1, but the message on the wire counts from 0. Many manuals write holding registers as “4xxxx” (40001 = register 1, sent as 0). That is a vendor habit, not part of the spec.
Fix: if your values look shifted by one, try the address minus 1.