It does seem like setting PAGE_NR to True causes it to remain at 1 for the entire job.

Well, I've built an expression that prints page number 1 to 250 for one record, then resets it on the next record:
PAGE_NR() - (INT((PAGE_NR()-1) / 250) * 250)
Using this code in your page counter variable should properly handle a counter of 1 to 250 on the 250 pages of every records. You can replace the two "250" if you need a different number of copies.

However, as of version 6.1.3, the INT function is broken, and doesn't work properly. It has been fixed in the upcoming release, but in the meantime, you might have to use the fixed version of the command that I've made through a javascript macro, and posted on this thread:

So in the end, the code will looks like:
PAGE_NR() - (INT_FIXED((PAGE_NR()-1) / 250) * 250)
Hope that helps.