Howdy Paul,
I am sorry to see this is giving issues. Sometimes this happens when another plugin changes the WP Timezone after you have set it, by running date_default_timezone_set(). This will happen very sneakily in the background, and the only indication you have it is happening is when random dates on your WordPress install start drifting a set amount of hours.
To test for this we will need to test if a “conflict” is happening, and if so narrow it down so we can find a fix for it. This guide walks you through how to test for a conflict, and then identify what is conflicting.
Does that all make sense? What’s the result of the test?
Cheers!
– Brook