Just a guess:
session_start() starts a new session or resumes an existing session". By doing another page request without calling session_start you will loose you session. You MUST call session_start() to resume your session. Why do you call session_start()?
In CodeIgniter it is sufficient to use $this->load->library('session'); You session will be available with every page request and you can access it using $this->session.
I think var_dump($_SESSION); and var_dump($this->session); will give you the same result. However I never checked it and cannot check it now.