The sessions should be available on the success page. The ipn page works differently since it is never actually loaded by your browser.
If you sometimes lose sessions it is probably because of inconsistencies with using www. or not in front of the url. If you start at www.domain.com and return to domain.com after payment, then it will have a different session.
The best solution is to force consistency with the .htaccess file. You can force it to always use one or the other (whichever it returns to after checkout should be used).
This page has quite a few options for htaccess redirects: https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4