Password Library and Creating a Variable Integer

Hey, so I read up on arrays and found some rough example code in depths of the internet. I completely threw out the password library in favor of this new code. The problem I'm having now is that after the LCD prints Password is Good or Password is Bad it wont move onto the next screen. ex. I punch in 1234 I get password is good, the the screen flickers some (like its trying to move on, but the password is good is still true so it keeps on showing password is good ? maybe?) and that's it, it just gets stuck there.

#include <Wire.h>
#include <LiquidCrystal.h>
#include <Keypad.h>

int pressCnt = 0;

#define Password_Length 5
char Data[Password_Length];
char Master[Password_Length] = "1234";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;

enum MODES
{
  MAINMENUMODE,
  SECURITYMODE,
  SECURITYMODETWO,
  COOPMODES
};


const byte ROWS = 4;
const byte COLS = 4;
MODES mode = MAINMENUMODE;

char keys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[ROWS] = {3, 5, 6, 7};
byte colPins[COLS] = {8, 9, 10};

Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);

void setup() {
  lcd.begin(16, 2);
  MainMenu();
  Serial.begin(9600);
}

void loop() {
  char myKey = myKeypad.getKey();

  if (myKey == '#') {
    mode = SECURITYMODE;
    pressCnt = 0;
    SecurityScreen();
  }

  if (mode == SECURITYMODE && myKey == '*') {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("  Invalid Key  ");
    delay (2000);
    SecurityScreen();
  }
  else if (mode == MAINMENUMODE && myKey == '*')
  {
    MainMenu(); //Replace with coop Door function down the line
  }

  if (mode == SECURITYMODE) {
    if (myKey >= '0' && myKey <= '9') {
      Data[pressCnt] = myKey;
      lcd.setCursor(pressCnt, 1);
      lcd.print('*');
      pressCnt++;
    }
  }
  
if (pressCnt == Password_Length - 1) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Password is ");

    if (!strcmp(Data, Master)) {
      lcd.print("Good");    
      delay(1000);
      clearData();
      SecurityScreenTWO();
    }
    else {
    lcd.print("Bad");
    delay(1000);
    clearData();
    MainMenu();
    }
  }
}

void clearData() {
  while (data_count != 0)
  {
    Data[data_count--] = 0;
  }
  return;
}

void SecurityScreen() {
  mode = SECURITYMODE;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" Enter Password");
}

void SecurityScreenTWO() {
  mode = SECURITYMODETWO;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" ARM System?");
}
void MainMenu() {
  mode = MAINMENUMODE;
  lcd.setCursor(0, 0);
  lcd.print("* for Coop");
  lcd.setCursor(0, 1);
  lcd.print("# for Security");
}