There seem to be some pretty serious limits around number of records that can be handled in pivots. I think it's because of length limitations of the querystring, and the fact the query lists every item individually eg In(123,124,125 etc). Not sure what the actual character limit is, but replicate what I'm talking about with these steps:
a) Create a numeric field and put it on a grid.
b) Enter '1' as the value, cut and paste so you've got 10 or so records.
c) Go Grid->Create Pivot and just drag the field over so it gives you a simple 'sum'. Sum should be 10, or whatever count of records is shown at the top of the tab.
d) Now, copy those rows as XML and paste them a number of times. If you have, say, 30, it's fine and the sum keeps up with the number of rows. Around 60 or so, your sum will top out which means not all rows are being included.