Vamos por partes,
Primero, si todo lo que esta en el Serial.Available tienes que "traducirlo" con la libreria keypad.h
Segundo, si descomentas el Serial.println te lo saca bien por puerto serie? si es así el problema lo tienes con el manejo de la LCD y no con el teclado.
Tercero, al hacerlo con el teclado tendrás que utilizar una de las teclas para aceptar la orden, para saber que ya has terminado de introducir números.
char key = Teclado.getKey();
if(key)
{
if (key = '#') //Tecla para finalizar la inserción de numeros
{
numero = 0;
}
if (numero ==0)
{
valor = key;
}
else
{
valor = (valor*10) + key;
}
}
Algo así, dale una vuelta. En cuanto a la LCD no te se decir no he trabajado con esa LCD ni librería pero si con el println se saca por el serial el valor de la tecla el problema lo tienes en el manejo de la LCD.
De todos modos, pon el código completo para ver las inicializaciones del teclado también no vaya a ser que esté ahí el error.
También puedes probar, aunque esto no debería ser el problema a sustituir:
if (key)
por
if (key != 0)
Un saludo!