Cita: cual es el tope máximo que puede llegar el campo serial??
Tomado de la documentación oficial de postgres.
Cita: serial 4 bytes autoincrementing integer 1 to 2147483647
Si requieres de mas registros, puedes usar un bigserial. Pero te repito, cambia el tipo de dato serial y reemplazalo por una secuencia. Son mas estables.
Con respecto al por que se dañó, podría ser un bug que tiene algún tipo de falla ante una transacción, pero ni idea.
Sospechaba que el insert lo hiciera controlando el conteo desde la aplicación, en ese caso, le echariamos la culpa a un error en el software, pero si se establecen los campos e el insert si creo que es un error de postgres.
Un saludo