Its really easy.. When you execute the print for the PrintPreview it runs the method, but it will still contain the object in memory.
Therefore your problem is not resetting it when the first print was done.
Change to this:
if (pagina < 6)
{
pagina++;
e.HasMorePages = true;
}
else
{
pagina = 0;
e.HasMorePages = false;
}