Looks like there's still something causing unexpected timer deletions during xmltv2vdr epg update cycle. I moved epg update to time when there's usually nothing to record and enabled "recreate deleted timers" on epgsearch as a workaround. Could this problem be something in epgsearch not liking xmltv2vdr? Spotted note below on epgsearch docs that sounds it might be related. I'll try adding commands to stop epgsearch when xmltv2vdr is running to see if it helps.
Important: if you get your EPG from external sources make sure that search timer updates are disabled while your EPG is updated. The reason for this is that epgsearch will remove timers without events assigned to them. This situation can exist while the new EPG is feeded to VDR. A simple way to disable search timer updates is to use the SVDRP command SETS in your EPG update script.