Sorry for posting and vanishing.
I looked at the Giv log and it didn't change back. I tried another hold later on and it worked fine, so either there was a random blip, or I messed something up.
Since then I've also done some more testing...
I set four charge windows with different settings:-
a) 01:00-04:00 with 1 slot and hold turned on (03:30-04:00 was the selected charge slot)
b) 04:30-06:30 with 4 slots and hold turned off
c) 07:00-09:00 with 1 slot and hold turned on (07:00-07:30 was the selected charge slot)
d) 09:30-10:30 with 2 slots and hold turned on
a) and c) failed to charge, however b) and d) charged successfully.
No surprise that b) worked fine, but the fact that d) worked while a) and c) didn't was strange.
Looking at the Giv logs, the only difference in the commands received is that d) received the eco set to off and discharge set to 0 before the AC start and end time.
Could the order the commands are received in be causing the issue?