Guarda, senza che leggo tutto ti posso comunque dare dei consigli.

Hai due strade se vuoi fare la paginazione e contemporaneamente eseguire delle raffinazioni.

La prima strada è portarti dietro tutte le variabili di raffinazione, scegli tu se tramite querystring o input hidden.

La seconda strada è salvarti la query in una sessione.

La prima volta che carichi la pagina crei la sessione.

Ogni volta che aggiungi una raffinazione aggiorni la sessione.

Quando cambi pagina richiami la query dalla sessione invece che dalla variabile, in questo modo ti ripeschi la query già bella e raffinata.

Questo metodo lo usiamo in asp per siti molto importanti e ti assicuro che funziona bene