Hi,
leider fehlt mir die Zeit, mich in deinen Code einzulesen. Allerdings wuerde ich mal folgendes probieren:
Starte mit dem code der funktioniert (deiner if/else Bedingung). Diesen Code setzt du an den Anfang deines Scriptes.
Dann füge stueckchenweise den nicht funktionierenden code hintendran und lasse dir Stueck für Stueck (wenn es sein muß auch Zeile für Zeile) über ein echo deine Sessionvariable ausgeben.
Wenn der Code in der if/else Bedingung funzt, was der Fall sein sollte, da korrekt, dann wird ja zwangsläufig irgendwann deine Sessionvariable nicht mehr da sein.
Wenn du jetzt abschnittsweise so vorgehst, solltest du die Stelle an der es hakt eigentlich relativ schnell eingrenzen können. Die Ausgabe von Variablen ist imho ein aeußerst adaequates Mittel zum Debuggen.
Gruß Ralf