The error message that I referred to in my post above can only apparently occur when a timer is sent and the EPG on the PVR is blank, or a timer refers to an event where the EPG on the PVR and the EPG on the ICE website are different.
These situations can never occur if the EPG data on the PVR is always updated before the timers are processed.
One way to help facilitate this is for ICE to send the EPG data to the PVR before it sends the timer transactions when any communication between the two systems happens. It has to be at the ICE end, the PVR does not know whether there are EPG changes due to be made and therefore due to arrive in the next transaction stream, nor does it know whether there are any timers coming.
Grampus suggests that the PVR requests the EPG data and, after that, the Timer data when it comes out of standby. But EPG changes and Timers are sent at other times according to an ICE determined schedule as I recall, not requested by the PVR. If so, we are left with the case where the EPG is changed by ICE and not promulgated to the PVR before the timers are sent.
This suggests that EPG change promulgation and Timer promulgation are separated in time, and if a scheduled timer "send" happens after an Ice EPG change but before that EPG change is promulgated to the PVR, the error situation described above can occur.
Why not just make the two events always coincide?