Its been over a year since I looked at this and I've forgotten how far I got but I think it might be the inability to write EEPROM at serial speeds (9600) thats the reason Karen didnt store hexloaded programs - its not EEPROM longevity - from the datasheet
"The EEPROM Data memory is rated for high erase/write cycles (specification D120) ... EEPROM data memory can be used to store frequently updated values." I'll have to have another look & try to remember where I got to... the nonvolatile thing is brilliant, especially for demos, but you cant be keying everything in manually....
Maybe try to follow up a hexload with EEPROM block write rather than a received byte at a time.