Saving an unsigned long int to internal EEPROM

I've made all the changes suggested and following is the code which compiles without any warnings or errors.

#include <Wire.h>
#include <hd44780.h>                       // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

hd44780_I2Cexp lcd; // declare lcd object: auto locate & config exapander chip

// LCD geometry
const byte LCD_COLS = 16;
const byte LCD_ROWS = 2;

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] =
{
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {6, 7, 8, 9}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 12, 11}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
bool getNumber = true;

const byte entryMaxSize = 5;
static char digits[entryMaxSize + 1];
static byte index;

void setup()
{
  Serial.begin(115200);
  lcd.begin(LCD_COLS, LCD_ROWS);
  lcd.setCursor(3, 0);
  lcd.print("  PRIYA");
  lcd.setCursor(3, 1);
  lcd.print("ELECTRONICS");
  delay(100);
  for (int positionCounter = 0; positionCounter < 40; positionCounter++)
  {
    lcd.scrollDisplayLeft();
    delay(120);
  }
  delay(800);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Set Count:");
}

void loop()
{
  char key = keypad.getKey();

  if (key != NO_KEY) // Check for a valid key.
  {
    switch (key)
    {
      case 'A': initializeCounter(); break;
      case 'D': setCount(); break;
      default: getCount(key);
    }
  }
}

void initializeCounter()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Set Count:");
  index = 0; // reset the counter
  getNumber = true;
}

void getCount(char key)
{
  if (getNumber)
  {
    // if not 5 characters yet
    if (index < entryMaxSize)
    {
      // add key to userinput array and increment counter
      if ( key >= '0' && key <= '9' ) // key is of type char and has a value between 0 and 9 so do something with it.
      {
        digits[index++] = key;
        digits[index] = '\0';
        lcd.print( key ) ;  // new print statement <<<<<<<<<<<<<<<<
      }
    }
    else
    {
      countWarning();
    }
  }
}

void setCount()
{
  if (getNumber)
  {
    if (index == 0)
    {
      invalidCount();
    }
    else
    {
      lcd.clear();
      lcd.print("Count Set:");
      for (byte i = 0; i < index; i++)
      {
        lcd.print(digits[i]);
        getNumber = false;
      }
      unsigned long count = atol(digits);
      Serial.print(count);
    }
  }
}

void invalidCount()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Invalid Count!!");
  lcd.setCursor(0, 1);
  lcd.print("Press A"); // suggesting the user to enter the count again
  getNumber = false;
}

void countWarning()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("5 Digits Only!!"); // warning for the user if more than permitted digits are entered
  lcd.setCursor(0, 1);
  lcd.print("Press A"); // suggesting the user to enter the count again
  getNumber = false;
}