A ver te dejo el ejemplo sencillo que te puse, recuerda que esta es la parte teórica, y que tienes que ajustarlo a tus necesidades.
Código:
<?php
if (isset($_POST['Enviado'])){
$_SESSION['Seleccionados'] = $_POST['Opciones'];
}
echo 'Seleccionados actualmente:';
foreach ($_SESSION['Seleccionados'] as $Elemento){
echo $Elemento .'<br>';
}
;
?>
<hr>
<p>
<?php
$Valores = array('volvo', 'saab', 'opel','audi');
?>
<form name="Ejemplo" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<select name="Opciones[]" multiple>
<?php
foreach ($Valores as $Valor){
$Marcar = (in_array($Valor, $_SESSION['Seleccionados']))? ' selected':'';
echo '<option value="'.$Valor.'"'.$Marcar.'>'.ucfirst($Valor).'</option>';
}
?>
</select>
<input type="submit" name="Enviado" value="Enviar">
</form>
</p>
Ejemplo funcionando:
http://fdw.lohacemosweb.net/bendich.php