Mich wundert, dass der Code überhaupt häuft.
char myKey = myOwnKeyPad.readKey();
du definierst myKey als einzelnen char obwohl deine Funktion eine Zeichenkette liefert (KEY_X). Ich würde MyAnalogKeyPad.h so ändern, dass mir die Lib auch nur einen char zurückgibt.