Ok, I have worked out that the missing records are somehow caused by having a group sort on the Contact name (eg: "Bowyer, George") field in the secretaries sub-report.
If I take the sort out they're all there (but in random order). If I have it in, most are there, in alphabetical order, but...