Puedes hacerlo propagando las variables en los formularios:
   Código PHP:
    function propagar($excepciones = array())
{
  $return = '';
  
    foreach ($_POST as $clave => $valor)
    {
      if (!in_array($clave, $excepciones))
      {
          $return .= '<input type="hidden" name="'.$clave.'" value="'.$valor.'" />';
      }
    }
    
    return $return;
} 
    
  O mediante las sessiones:  
 Código PHP:
    session_start();
 
function guardarDatos($excepciones = array())
{
    foreach ($_POST as $clave => $valor)
    {
        if (!in_array($clave, $excepciones) && !isset($_SESSION['dato_'.$clave]))
        {
            $_SESSION['dato_'.$clave] = $valor;
        }
    }
}
 
function obtenerDatos()
{
  $return = array();
  
  foreach ($_SESSION as $clave => $valor)
  {
      if (strpos($clave, 'dato_') === 0)
      {
          $return[substr($clave, 5)] = $valor;
      }
  }
  
  return $return;
}
 
function borrarDatos()
{
    foreach (array_keys($_SESSION) as $clave)
    {
        if (strpos($clave, 'dato_') === 0)
      {
          unset($clave);
      }
    }
}
 
// Empezar proceso
borrarDatos();
 
// Cada paso del proceso
guarDatos(array('id'));
 
// Final del proceso
obtenerDatos();