Acho que o stopper mais provável aqui é que o seu script .xsession não tem permissão de execução ( +x ).
Em gdm , você também precisa escolher "Sessão Personalizada" (e não a sessão padrão "Xmonad") no menu Sessão antes de fazer o login.