I just noticed that the location on your hub was not set, I copied the location from one of your timers to the hub. This is a real long shot but I’m wondering if this is at least part of the problem. The server sends the time to the hub based on its location, if the hub didn’t have a location then the server would send the wrong time or not send one at all. So, if you connected to it via the phone it would later be updated to the wrong date/time or the date/time wouldn’t be updated and the timer’s clock will drift over time.
So, let’s see how this goes, if we need to we can dig a little deeper.
One other thing to check, when you pull the battery tray out of a timer is there moisture on it or in the battery compartment?