sistema per memorizzare un numero grande 0-99999

Ho riguardato il tuo codice, non ti funzionava anche per via del casting dei tipi. Questo funziona.

#include <EEPROM.h>


unsigned long K = 0xA0B0C0D0;

byte A;
byte B;
byte C;
byte D;

unsigned long Z;

unsigned long p;

void setup(){
    delay(2000);
    Serial.begin(9600); 

    A = (K >> 24) & 0b11111111;
    B = (K >> 16) & 0b11111111;
    C = (K >> 8)  & 0b11111111;
    D = K & 0b11111111;
    Serial.println(A, HEX);
    Serial.println(B, HEX);
    Serial.println(C, HEX);
    Serial.println(D, HEX);
    EEPROM.write(1, A);
    EEPROM.write(2, B);
    EEPROM.write(3, C);
    EEPROM.write(4, D);
    Z = ((unsigned long)(A) << 24) | ((unsigned long)(B) << 16) | ((unsigned long)(C) << 8) | (unsigned long)(D);
    p = ((unsigned long)(EEPROM.read(1)) << 24) | ((unsigned long)(EEPROM.read(2)) << 16) | ((unsigned long)(EEPROM.read(3)) << 8) | (unsigned long)(EEPROM.read(4));

    Serial.println(Z, HEX);
    Serial.println(p, HEX);
}

void loop(){

}

Te l'ho messo in esadecimale così vedi come vengono scomposte le variabili.