Okay, well I spent hours and hours trying to figure this out.
The behavior was inconsistent across browsers, which also threw me.
What seems to have worked, at least for the time being, is I replaced:
$_SESSION['player']=$player;
session_write_close();
header("Location: http://www.football.clairence.com/weekselect.php");
with
$_SESSION['player']=$player;
session_write_close();
session_start();
header("Location: http://www.football.clairence.com/weekselect.php");
Also, in /weekselect.php, I was setting the variable $id to a value from the database, which seems to have been why $SESSION['id'] was changing between the top and bottom of the page.
Changing $id to $plid seems to have solved the loss of $SESSION['id'] through the page.
Pretty simple stuff, in the end. (It just took me three days to figure it out!)
Thanks for the replies.