Ho visto che usi in CodaFifo nella funzione Inserisci, come parametro, un oggetto piuttosto che il suo puntatore ... e forse usi questo modo di passare gli oggetti un po' in generale, ma non e' corretto.

Dovrebbe essere

l.inserisci(&n1);

e quindi

void CodaFifo::inserisci(Nodo *n)

in cui n deve essere trattato come puntatore all'oggetto.

Se usi passare gli oggetti, viene fatta una copia dell'oggetto originale in un altro oggetto dal C++, copia che viene usata all'interno della funzione e poi distrutta con il richiamo del distruttore prima dell'uscita. Questo fatto ti fa credere che stai operando con gli oggetti dichiarati nel main ed invece non e' cosi'.

O anche, e forse meglio, passa i parametri per reference.
Cosi' che lasci

l.inserisci(n1);

e scrivi

void CodaFifo::inserisci(Nodo& n)

Attento pero' ... la cosa non si deve limitare a CodaFifo ma anche alle altre classi in cui i parametri "oggetti" devono essere passati per puntatore o riferimento (vedi il costruttore di Cella ...)