is it possible to save the whole pagearray for a page in $session? Or at least a whole regular array?
It should be fine to put in a regular array (of non-objects), but I don't think a PageArray will work. Whatever you put in $session is best reduced to a native PHP type, so to stuff a PageArray into $session, I would typecast it to a string:
$session->pageArray = (string) $pageArray;
And to pull it out in the next request, pass that string to $pages->find(), which will turn it back into a PageArray:
$pageArray = $pages->get("id=$session->pageArray");