Sorry to contradict you Dave, but I think what you're describing are the reasons for missing descriptions, not missing names.
Timer names are unconditionally set in the Beyonwiz IceTV plugin directly from the "name" field in the JSON timer object sent from IceTV. The only reason that the name would be missing at that point would be that the name was empty (or all spaces), or not present in the JSON object. Similarly if the name is incorrect in the JSON object.
If the name is not in the JSON timer object or is empty (but not all spaces), the Beyonwiz's common timer creation code will also try to fill in the name from the EPG. That will fail if the timer is for a time outside the span of the current EPG. This process can also assign the wrong name and description if the event being recorded is short compared to the post-padding, but it will only assign the wrong name if the name was missing or empty in the IceTV JSON timer object.
I'm not ruling out the timer name subsequently getting reset in the Beyonwiz code, but that's something I haven't come across.
The fix procedure you've described will work if, in the meantime, the name has changed in the timer data sent from IceTV (but the EIT id stayed the same), or if the name was originally empty in the IceTV timer and couldn't be assigned from the EPG, but it can be assigned now.