Es una cosita muy simple.
Básicamente cuando tecleas la clave haces:
[1] [2] [3] [ENTER]
con cin>>clave extraes el 123 pero el enter o '\n' queda en el buffer por lo que a continuación cuando haces getchar() en vez de dejarle al usuario que escriba A, B, C o D getchar() guarda '\n' directamente.
Para solucionar esto simplemente haz cin.ignore() o getchar() antes de pedir que introduzcan A, B, C...
Código:
//...
else
{cout<<"Clave Incorrecta\n";
system("pause");
return 0;}
getchar(); //o cin.ignore()
cout<<"Digite A para listado de habitaciones\n";
cout<<"Digite B para listado de clientes\n";
cout<<"Digite C para Proceso de reservaciones\n";
cout<<"Digite D para salir\n";
//...
Esto ignora un carácter, es decir el salto de linea (\n)