pues nada, el misterio contina, por ahora lo he "solucionado" pasando en esta llamada (que es donde pierde la sesión)
Response.Redirect(ResolveUrl("NABCheckout.aspx"), True)
el id del carrito como parametro (?CartId) y con eso ya tengo el id del portal, y del usuario sin necesitar recuperarlo en el fichero checkout, y ya funciona todo bien y eso, lo que pasa es que al volver de la pasarela, pues hay que loguearse ¬¬
Un saludo, y si consigo averiguar que pasa, ya lo pondré por aquí por si a alguien le pasa lo mismo :)