Hello Justin ..
you can use the node-red-contrib-buffer-parser nodes to first convert the signed INT to a buffer,
then to a UINT and finally construct the msg for the modbus Write node.
Here is an example flow :
[{"id":"33d3ecfcea39961a","type":"inject","z":"937cb040.d8e16","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"-123","payloadType":"num","x":210,"y":920,"wires":[["8a4d45153a2bbd13"]]},{"id":"8a4d45153a2bbd13","type":"buffer-maker","z":"937cb040.d8e16","name":"Convert INT to Buffer","specification":"spec","specificationType":"ui","items":[{"name":"item1","type":"int16be","length":1,"dataType":"msg","data":"payload"}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","x":400,"y":920,"wires":[["d9083768a228b72c","30d6c88b90c5b218"]]},{"id":"d9083768a228b72c","type":"buffer-parser","z":"937cb040.d8e16","name":"Convert Buffer to UINT","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"uint16be","name":"uint16","offset":0,"length":1,"offsetbit":0,"scale":"1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"keyvalue","resultTypeType":"return","multipleResult":false,"fanOutMultipleResult":true,"setTopic":false,"outputs":1,"x":680,"y":920,"wires":[["ad74442fa961ea10","86971d6890ae44e6"]]},{"id":"30d6c88b90c5b218","type":"debug","z":"937cb040.d8e16","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":495,"y":860,"wires":[],"l":false},{"id":"ad74442fa961ea10","type":"debug","z":"937cb040.d8e16","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":825,"y":860,"wires":[],"l":false},{"id":"86971d6890ae44e6","type":"function","z":"937cb040.d8e16","name":"","func":"\nmsg.payload = {\n value: msg.payload.uint16,\n 'fc': 6,\n 'unitid': 1,\n 'address': 4, //your address\n 'quantity': 1\n}\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":945,"y":920,"wires":[["c9ea6d2795d44709","671e91517cc5349c"]],"l":false},{"id":"c9ea6d2795d44709","type":"modbus-flex-write","z":"937cb040.d8e16","name":"","showStatusActivities":true,"showErrors":true,"server":"644cb5f29bb9a4f8","emptyMsgOnFail":false,"keepMsgProperties":false,"x":1110,"y":920,"wires":[[],[]]},{"id":"671e91517cc5349c","type":"debug","z":"937cb040.d8e16","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1020,"y":860,"wires":[]},{"id":"644cb5f29bb9a4f8","type":"modbus-client","name":"","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"failureLogEnabled":true,"tcpHost":"127.0.0.1","tcpPort":"10502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","serialAsciiResponseStartDelimiter":"0x3A","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":false,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true}]