Similar to this question, but their problem with the query was never fully solved:
#Error showing up in multiple LEFT JOIN statement Access query when value should b
It's looking like it could be to do with a known bug in Access, whereby it makes mistakes on outer joins with calculated fields:
http://allenbrowne.com/BugOuterJoinExpression.html
and
http://allenbrowne.com/bug-10.html
So going to see if I can rejig the subqueries to disguise the calculated fields somehow.
I love Access. :)