Okay, finally resolved this. The issue was the subform filter. How it got set I do not know, but it was set to a specific record id. When the main form was filtered the subform filter was activated and didn't match the main form filter, so wouldn't show anything.
Lesson: If you filter on the...