Hola,
Dos cosas:
Primero, esto:
Código PHP:
$pages = intval($total_records / $cantidad);
seria mejor como:
Código PHP:
$pages = ceil($total_records / $cantidad);
Tendrias luego que repasar los limites de los for que muestran los enlaces.
Y segundo, el script recibe del formulario unos valores. Pero en tus links de paginacion no propagas esos valores. Te en cuenta que esos links son como si llamaran a otro script, no tendran conocimiento de los parametros recibidos del formulario. Por eso en esos links desde propagar los valores recibidos del formulario. Añade los parametros a los links.
Si buscas un poco, en la firma del usuario jpinedo hay un link a un script suyo de paginacion. Y tambien puedes buscar la clase de paginado de webstudio. Y tambien busca por "paginacion" en el buscador del foro.
Suerte.
PD: No me he leido todo el codigo. Pero el tema de la paginacion se ha tratado tantas veces en este foro, que ya se donde mirar