allora.. guarda.. fai così.. per ogni tag del form fai così molto semplicemente

es:
Codice PHP:
<form name="ciccio" id="ciccio" method="post" action="<?=$_SERVER['PHP_SELF']; ?>">
  <input type="text" value="<?=$_POST['nome']; ?>" name="nome">
  <input type="text" value="<?=$_POST['cognome']; ?>" name="cognome">
  <select name="provincia" onchange="submit();">
    <option value="<?=$idprov1?>"><?=$prov1?></option>
    ... ecc...
  </select>
  <?php
  
if (trim($_POST['provincia'])) {
    
// Fai la lista come ti pare a te :)
  
}
  <
select name="citta">
    <?
php // Qui gli fai stampare la lista ?>
    <option value="<?=$idcitta?>"><?$citta?></option>
  <input type="submit" value="continua">
</form>
praticamente gli dai lo stesso nome alla variabile php e tutte le volte che gli fai un submit alla pagina lui te la ricrea con gli stessi valori di prima perchè se li porta dietro

spero di essere stato chiaro