A razão pela qual meu shell continua voltando ao bash e até mesmo me impedindo de usar exec para entrar no tcsh foi porque no arquivo .cshrc havia uma linha que diz exec /bin/bash -l
lá. Para corrigir isso, eu removi essa linha e, a partir desse ponto, posso trocar os shells.