The problem may have to do with how the session is working for you. When the user is on the site before they checkout take a look at the URL and record it. Then take a look at the page that you have specified for the return, you will need to ensure that the domains match up correctly.
For example if your URL on the checkout page is www.domain.com and the page you have specified as the return is set to just domain.com then the session will be lost also look for http vs https, this can have a similar result. If this does not work out for you let me know and we can try a different approach.