I don't use the Pi Gateway, so I can't help you to make it work, but I can tell you why it's not working :
[12-01-20_00:00:00.011] [LOG] **** SCHEDULING EVENT - nodeId:5 event:resetWaterGal_monthly to run in ~743h59m
[12-01-20_00:00:00.014] [ERROR] (node:26715) TimeoutOverflowWarning: 2678399989 does not fit into a 32-bit signed integer.
Timeout duration was set to 1.
I don't know why exports.millisToFutureDate returns a 32-bit signed integer instead of a 32-bit unsigned integer.
With a 32-bit unsigned integer, you can wait about [0; 49] days before overflowing the milliseconds counter, so with a 32 bit signed integer counter, you overflow at about 49/2 = 24 days [-24; 24], which is less than a month.
Your log tells you what's wrong :
TimeoutOverflowWarning: 2678399989 does not fit into a 32-bit signed integer.
Since you overflow the 32-bit signed integer value, the default value of 1ms is used instead.
You have to find another way to schedule your event for more than 24 days. Maybe schedule a smaller interval with a counter and execute your function every 2 events?