Modbus server Address assigning issue

Hi i am using node-red-contrib-modbus 5.4 and use modbus server and wientek tk8071ip hmi as modbus tcp/ip the connection is happend perfectly i have set holding register at numeric display on hmi with address 4x01 to 4x09 hmi is taking data as 16 bit unsigned value the problem is that when i am sending array of two at modbus address 0 it is reaching the hmi with byt swaping but when i push on address 1 from my nodered function it landed on hmi modbus address 5 and i have checked on debug node that when i put on address 1 then it should send data on index 2 and 3 but it is sending data on index 8 and 9
why this shifting any clue

I think it is an addressing/offset mismatch between Node-RED and the Weintek HMI. Modbus devices often use different conventions for 0-based vs 1-based addressing, and 4x01 on the HMI may not correspond directly to address 0 in Node-RED. So first test with a single register and map Node-RED address 0 → HMI 4x01, then address 1 → 4x02. If it jumps to 4x05, check the HMI’s register type/address mode and whether the node is applying a word/byte offset. The byte swapping is a separate issue from the address shift.