A ver, en tu form, deberías maquetar los datos de la cabecera de la factura tal que así:
Código HTML:
<input type="LoQueSea" value="<? echo $_SESSION['LoQueToque']; ?>">
Y en la parte en la que recibes los datos de todo el form para ir añadiendo filas, sería más o menos de la siguiente manera:
Código PHP:
$_SESSION['hacienda'] = $_POST['hacienda'];
$_SESSION['num_fact'] = $_POST['num_fact'];
$_SESSION['fecha'] = $_POST['fecha'];
$_SESSION['proveedor'] = $_POST['proveedor'];
$Array_producto = $_SESSION['producto'];
$Array_presentacion = $_SESSION['presentacion'];
$Array_cant_prod = $_SESSION['cant_prod'];
$Array_cant_medida = $_SESSION['cant_medida'];
$Array_medida = $_SESSION['medida'];
$Array_valor = $_SESSION['valor'];
$Array_IVA = $_SESSION['IVA'];
$Array_flete = $_SESSION['flete'];
$Array_costo = $_SESSION['costo'];
$Array_finalidad = $_SESSION['finalidad'];
$Array_producto[] = $_POST['producto'];
$Array_presentacion[] = $_POST['presentacion'];
$Array_cant_prod[] = $_POST['cant_prod'];
$Array_cant_medida[] = $_POST['cant_medida'];
$Array_medida[] = $_POST['medida'];
$Array_valor[] = $_POST['valor'];
$Array_IVA[] = $_POST['IVA'];
$Array_flete[] = $_POST['flete'];
$Array_costo[] = $_POST['costo'];
$Array_finalidad[] = $_POST['finalidad'];
$_SESSION['producto'] = $Array_producto;
$_SESSION['presentacion'] = $Array_presentacion;
$_SESSION['cant_prod'] = $Array_cant_prod;
$_SESSION['cant_medida'] = $Array_cant_medida;
$_SESSION['medida'] = $Array_medida;
$_SESSION['valor'] = $Array_valor;
$_SESSION['IVA'] = $Array_IVA;
$_SESSION['flete'] = $Array_flete;
$_SESSION['costo'] = $Array_costo;
$_SESSION['finalidad'] = $Array_finalidad;
Espero que te sirva de ayuda el ejemplo.