Mat It looks like it's working, this may have to do with the way we implemented 'hold charge'.
We're simply setting the charge target percentage to current SOC. And it does look that there are still some fluctuations going on, but on the whole, it looks like the battery stays at or around the SOC.
This mechanism works quite well on Growatt, but for Giv, it may be better to effectively reduce the discharge power to 0 during a hold-charge slot.