I'd be careful about storing all this data in session.  It's generally the best practice to store just IDs in the session and further data in the database.  More secure and ensures you don't run into limits of session size for older browsers.