Try narrowing things down: scripts that are (a) as small as possible (to reduce the number of distractions and red herrings) and (b) still has the problem. Something like
page1.php
<?php
session_start();
$_SESSION['username']='foo!';
?>
<html><head><title></title></head>
<body><a href="page2.php">Click</a></body></html>
page2.php
<?php
session_start();
$username = $_SESSION['username'];
?>
<html><head><title></title></head>
<body><?php echo $username?></body></html>
And if you're getting no joy, see what the value of session_id() is, have a look at the session data file, check that you've got session handling properly enabled in php.ini.