Thanks again, Charles. Since I don't use macros at all, the reset is part of the driver startup now. Will see how it behave during the next few days.
Assuming that the lock up problem is macro related, I'm still wondering what is triggering the macro in the first place. It happened Tuesday and Wednesday last week, at about 06:30am, normal on Thursday, happened again on Friday (about the same time), and worked as expected over the weekend. Could it be power fluctuations? My UPS didn't report any power problems during this period.
It's acting like there's effectively a timer in the CM11A EEPROM which goes off at 6:30AM on those days of the week (and executes a garbage macro). Nothing is required to trigger it beyond the clock reaching that time.
Bill's advice is sound regarding the not-unlimited number of times you can write to an EEPROM location.
You should only have to send that string of bytes once - there's no need to do it more than that unless the EEPROM gets corrupted again at some time in the future, and it shouldn't. As far as I know, the only way to change anything in the EEPROM is by sending a similar 19-byte string beginning with 0xFB, then following with the 0x00.