LED Sequencer and an apparent timing issue (delays appear to solve the problem)

I'd suggest that some of your names are misleading:

#define SIZE_OF_EEPROM       4               // size of bank data in EEPROM

My EEPROM is much larger than that. SIZE_OF_BANK might be a better name.

    int spot   = EEPROM_BASE + 1 + (SIZE_OF_EEPROM * indx);

spot? How about startAddress?

Your class should have a constructor that also calls init(), so that you can be assured that init() gets called.

You deleteEvent() method always removes the last event. I don't like that design. It should be able to remove the nth event.

Your checkEvents() method returns true if any event occurred. It should return -1 for no event, and n for the nth event.

Your other methods assume that the first event in the list is the event that fired.

Really, I think your problem is in the Events class. You need to know which event occurred, so that you can get the data for that event. Deleting the event, and re-adding it, is silly. Just add a method to reset the nth event's eventTime value.