Hola! decidi compilarlo y
ver los errores que marca, mira q facil:
1º: en el case 4 llamas a la funcion
listanueva=busca_persona(listanueva);
pero vos la definiste como
persona *busca_persona(persona *listanueva,char nombre);
Si vas a pasar un nombre a la funcion el prototipo debe ser
persona *busca_persona(persona *listanueva,char *nombre); // el nombre es un puntero a char
2º El warning es por esto:
if (auxbuscar->nombre==nombre) // nose puede comparar de esta manera
para comparar cadenas tenes que usar la funcion strcmp
Saludos