I think I sorted it.

pseudo-code:
for each page,
movieclip:MovieClip = new MovieClip
load page gubbins into movieclip
save movieclip to array movieclips
-
add movieclips[0] to stage.

The problem, as I can work it out, is that movieclip is a local variable and was being over-written, regardless of being added to the array at the end of each loop. The fix I used was to name the movie clips movieclipn where n is the loop number, and instead of keeping track of it in an array I just added all movieclips to the stage, keeping the ones I didn't want to see off the screen.

Not the best solution, but it works...