Okay, two hours writing out a reply and being forced to hard-boot due to screen issues, it's a painful loss.
Here's the condensed version,
The tablepager requires the information in a single table, and it changes the display of the table rows, in the same way that the toggling of the additonal information changes the display of the same table row.
What is needed is for each of the addititional information rows that should hidden to have a class name added to it, such as "hidden", and for the tablepager script to be updated so that it properly accepts options that are passed to it.
That way you can have 6 rows per page, which will show three sets of info (each with 2 rows, 1 for country info and the other for additional info).
Then, the tablepager can be updated again to accept an onchange option, so that whenever the table is updated the onchange function can fire and then update those rows with the "hidden" class name so that they are actually hidden.
That way your page will work as intended.