Problema con condiciones

Hola, tengo un pequeño problema, estoy haciendo un código usando menus usando una pantalla LCD y teclado matricial, mi problema es que al avanzar entre los menus, si presiono alguna tecla que ya había usado antes me regresa a las pantallas anteriores.

//Dispensadora y mezcladora de pintura


/////////////////////////////////////////////////

//Configuración teclado matricial
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <MenuBackend.h>


const byte Filas = 4; //Define la cantidad de filas del teclado
const byte Columnas = 4; //Define la cantidad de columnas del teclado
char teclas[Filas][Columnas] = { //Caracteres que detecta el Arduino al presionar las teclas
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte FilaPins[Filas] = {14, 15, 16, 17}; //Define los pines de las entradas de las filas en Arduino
byte ColumnaPins[Columnas] = {18, 19, 20, 21}; //Define los pines de las entradas de las columnas en Arduino

Keypad keypad = Keypad( makeKeymap(teclas), FilaPins, ColumnaPins, Filas, Columnas );

///////////////////////////////////////////////////////////////////
// Configuración LCD
/* 0 - D7
 * 1 - D6
 * 2 - D5
 * 3 - D4
 * 4 - E
 * 5 - RS
 * A - Positivo resistencia 220 Ohms
 * K - Negativo
 * RW - Negativo
 * VO/VFE - Potenciometro 10k Ohms
 */
LiquidCrystal lcd(5, 4, 3, 2, 1, 0);

void setup()
{
  lcd.begin(20, 4);
  lcd.print("Dispensador de");
  lcd.setCursor(0, 1);
  lcd.print("pintura automatico");
  lcd.setCursor(0, 3);
  lcd.print("     Version 1.0");



}

void loop()
{

  int Menu = 0;
  int Menu1 = 0;
  int Menu2 = 0;
  int mL;
  int Color;
  char tecla;
  char Inicio
  int Cantidad;
  int Start;

 if (Start == 0)
 {
   Inicio = keypad.getKey();
 }
 
 
  
  
  
  if (Inicio == 'A') {

    Start = 1;
    Inicio = 'B';
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("Configuracion");
    delay(2000);
    lcd.clear();
    Menu1 = 'A';

  }





  if (Menu1 == 'A') {
    
    
    lcd.print("Selecciona la");
    lcd.setCursor(0, 1);
    lcd.print("cantidad de pintura");
    delay(2000);
    lcd.clear();
    lcd.print("1. 100mL    5. 500mL");
    lcd.setCursor(0, 1);
    lcd.print("2. 200mL");
    lcd.setCursor(0, 2);
    lcd.print("3. 300mL");
    lcd.setCursor(0, 3);
    lcd.print("4. 400mL");
    Menu1 = 0;
    
    
  
  }


    Menu2 = keypad.getKey();
    switch (Menu2) {



      case '1': // 100mL
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("A seleccionado 100mL");
        mL = 1;
        Menu2 = 0;
        delay(2000);
        if (mL == 1)
        {
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("Selecciona el color");
        delay(2000);
        lcd.clear();
        lcd.print("1. Rojo     5. Negro");
        lcd.setCursor(0, 1);
        lcd.print("2. Azul     6. Gris");
        lcd.setCursor(0, 2);
        lcd.print("3. Amarillo 7. Rosa");
        lcd.setCursor(0, 3);
        lcd.print("4. Blanco   8. Cafe");
        delay(2000);
        }
        break;

      case '2': // 200mL
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("A seleccionado 200mL");
        mL = 2;
        Menu2 = 0;
        delay(2000);
        if (mL == 2){
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("Selecciona el color");
        delay(2000);
        lcd.clear();
        lcd.print("1. Rojo     5. Negro");
        lcd.setCursor(0, 1);
        lcd.print("2. Azul     6. Gris");
        lcd.setCursor(0, 2);
        lcd.print("3. Amarillo 7. Rosa");
        lcd.setCursor(0, 3);
        lcd.print("4. Blanco   8. Cafe");
        delay(2000);
        }
        break;

      case '3': // 300mL
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("A seleccionado 300mL");
        mL = 3;
        Menu2 = 0;
        delay(2000);
        if (mL == 3){
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("Selecciona el color");
        delay(2000);
        lcd.clear();
        lcd.print("1. Rojo     5. Negro");
        lcd.setCursor(0, 1);
        lcd.print("2. Azul     6. Gris");
        lcd.setCursor(0, 2);
        lcd.print("3. Amarillo 7. Rosa");
        lcd.setCursor(0, 3);
        lcd.print("4. Blanco   8. Cafe");
        delay(2000);
        }
        break;

      case '4': // 400mL
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("A seleccionado 400mL");
        mL = 4;
        Menu2 = 0;
        delay(2000);
        if (mL == 4)
        {
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("Selecciona el color");
        delay(2000);
        lcd.clear();
        lcd.print("1. Rojo     5. Negro");
        lcd.setCursor(0, 1);
        lcd.print("2. Azul     6. Gris");
        lcd.setCursor(0, 2);
        lcd.print("3. Amarillo 7. Rosa");
        lcd.setCursor(0, 3);
        lcd.print("4. Blanco   8. Cafe");
        delay(2000);
        }
        break;

      case '5': //500mL
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("A seleccionado 500mL");
        mL = 5;
        Menu2 = 0;
        delay(2000);
        if (mL == 5)
        {
        lcd.clear();
        lcd.setCursor(0,1);
        lcd.print("Selecciona el color");
        delay(2000);
        lcd.clear();
        lcd.print("1. Rojo     5. Negro");
        lcd.setCursor(0, 1);
        lcd.print("2. Azul     6. Gris");
        lcd.setCursor(0, 2);
        lcd.print("3. Amarillo 7. Rosa");
        lcd.setCursor(0, 3);
        lcd.print("4. Blanco   8. Cafe");
        delay(2000);
        }
        break;
    }



  
  
}

He tratado usando if pero sigue igual, por si no me doy mucho a entender, si estoy en el menu de selección de cantidad, si presiono la tecla A nuevamente me regresa al inicio, y si presiono cualquier tecla del 1-5 en cualquier parte del código me manda directamente a la selección del color.

Gracias.

prueba quitando esto del loop() y colocandolo antes del setup():

int Menu = 0;
 int Menu1 = 0;
 int Menu2 = 0;
 int mL;
 int Color;
 char tecla;
 char Inicio
 int Cantidad;
 int Start;

vigila los delay(),un delay(2000) significa que el microcontrolador esta 2 segundos sin hacer nada ni atender a ningun boton que toques.....