...la paginazione?? non credo sia direttamente interessata nella gestione delle sessioni.

comunque, prova la strada più semplice. Nella pagina che riceve i dati, all'inizio farai un qualche tipo di controllo per capire ed accertarti che i dati siano stati inviati dal form e che non siano vuoti, no? Allora, subito dopo aver verificato questa cosa memorizza i dati provenienti dal form in altrettante sessioni, cos' come avevi già tentato di fare:

Codice PHP:
<?php
session_start
();

//verifica se i dati sono stati inviati dal form
$_SESSION["anno"]=$_POST["anno"];
$_SESSION["autori"]=$_POST["autori"];
...

?>
Adesso, se tutto è andato a buon fine, avrai valorizzato esattamente le sessioni e i dati in esse contenuti saranno disponibili per tutta la durata dello script, a meno chè tu non decida di eliminarle alla fine dell'esito della ricerca, con le due istruzioni che ti ho indicato prima.

Se poi, come hai accennato prima, la paginazione ti crea dei problemi allora cerca tu stesso di individuare il punto in cui si verifica l'errore. Procedi a ritroso nel codice fino a quando non riscontri qualcosa di strano, isolando il problema però.