I can explain how this could happen in a PVR, but I know nothing about VMC.
ICE data is GMT/UTC. A PVR adds the known GMT offset to the data to display it to you in your local time. With Topfield 5K PVRs, the way it calculates the GMT offset if you run your PVR clock in manual time (to avoid dodgy broadcaster timestamps) is really dumb. It subtracts your PVR manual crystal run clock time from the broadcaster timestamp (broadcaster timestamps are in GMT) and thus obtains a GMT offset. It then applies this to the GMT based EPG data (from the broadcaster or from ICE) and bobs your uncle, EPG displayed in local time. The issue arrises with this strategy that if your unit clock is out by say, 3minutes (lets say 3mins fast), then when it uses this strategy it will thus calculate your GMT offset to be 10hours&3mins, and thus your EPG will look like it is 3minutes ahead of what it should be (shows starting at 8.33 instead of 8.30 for example).
If the broadcaster GMT timestamp is dodgy (because some local broadcasters are hopeless and can't adjust their broadcasting clocks properly!), then you will get the same result, EPG out by however many minutes (or hours!!) your broadcaster clock is out by.
If the PVR is in AUTO time, it only uses the broadcaster clock for your main PVR clock, but in AUTO time you setup a GMT offset yourself, so this fixed GMT offset is applied to the GMT based EPG and you will always get accurate EPG this way (shame that if the broadcaster timestamp is dodgy your PVR clock will vary wildly!!)
Regards