Saving an unsigned long int to internal EEPROM

digits[x] = '\0';
lcd.print( key ) ; // new print statement <<<<<<<<<<<<<<<<

Where will the LCD cursor be before you print key for the first time ? Will it by any chance be at the end of the stored number printed previously ?