Saving an unsigned long int to internal EEPROM

instead of the digits printing from right to left as I enter them, they change at one position

                lcd.clear();
                char displayText[18] = "";
                snprintf(displayText, sizeof(displayText), "Set Count:%5d", key - '0');
                lcd.setCursor(0, 0);
                lcd.print(displayText);

No wonder that you only get one character, because you have cleared the LCD. Don't clear the LCD, just remove the number previously displayed by positioning the cursor and printing " " over it, then reposition the cursor and print the digits string that you just added a digit to