me parece que hice algo parecido, pero no lo tengo aca.
mete el menu en un do-while (opcion!=27) y despues un
if (opcion==27);
return(opcion);
en el principal, hace que si se da esa opcion, repita el menu
if (opcion==27);
menu();
me parece qe era asi, sino funciona avisame.
chau