perchè lo metti in sessione? è proprio necessario?
Comunque il metodo MsgHTML cerca probabilmente con qualche regex di estrarre la controparte testuale della tua mail, e sembra che $_SESSION['mail'] contenga un oggetto e non una stringa.
Non è che sul tuo server hai le register_globals a on?
Perchè vedendo il tuo codice la variabile $mail è l'istanza dell'oggetto phpmailer.
Prova a mettere il tutto in $_SESSION['testo_mail'].
Comunque rinnovo la domanda, è davvero necessario mettere in sessione la variabile?
ciao