I have tried building similar collections myself and got the same results.
The thing is you are querying the sccm database, not the AD directly, and the database is updated by the Discovery agents. If I remember correctly the System Discovery Agent updates what systems are in which OU's and by default the agent only runs once per day. Again, I could be wrong, but this is what I found most likely.