Perhaps (tough as it is) it's maybe the fact you are using frames that will mess around with your sessions.
In effect, you are dealing with more than one page at a time, PHP will have trouble associating a SID tag with internal framesets as the SID can't be transmitted via the url.
You might be able to get all the session info from cookies but only if they don't change throughout the site.
Maybe try setting the session on a page without frames and see if it will propegate through the rest of the pages??
Just some ideas...