purtroppo non ho modo di rivederti il codice... tieni conto che potresti semplicemente gestire la cosa DENTRO la classe...
...nel costruttore controlli se c'è già un oggetto in sessione: se sì recuperi quello, altrimenti ne inizializzi uno vuoto
tutto il resto è abbastanza "automatico": ad ogni aggiornamento devi aggiornare anche l'oggetto in sessione (lo fai dentro la classe stessa)