Well, first I don't see any need for the "as derived" because all you were doing was providing a local alias that you didn't then use for anything. So I'm glad to see you got rid of it.
Second, strictly from set theory considerations, you have two queries:
1. A query that UNIONs five tables in a sub-query and then UNIONs the result with a sixth table in the outer query. (in post 6)
2. A query that UNIONS six tables in one statement. (in post 7)
Because of the rules of set theory, the two queries should produce ABSOLUTELY IDENTICAL sets. That is because (a) there is an equivalent in set theory to the math concepts of associativity and commutativity, and (b) you have no exclusionary clauses in any of the queries.
You are adding together six sets of records and the ONLY difference is the syntax of the statements by which they are formed. Therefore, if you look at the records from the query outputs of method #1 and of method #2, the SAME RECORDS would be presented.
If you say they are not the same then you are not testing correctly OR there is an error that you are suppressing so you don't realize that there is a difference somewhere. Do you have error notification disabled when you run that beast? Because there is NO SEMANTIC DIFFERENCE between the two methods.
Oh, the records might or might not appear in the same order if you displayed the resultant recordset. BUT ... if you have paid attention in this forum, you know that without an ordering clause, you cannot rely on the order in which you will see things even for a single table. That's because set theory imposes no order.
A query is theoretically a "gang-bang" event in which everything happens at the same time. Of course we know that isn't true, mechanically speaking - but the point is that Access strictly adheres to the idea that when it is done doing what you asked it to do, you can't tell anything about the way it did things. Not only Access, by the way. ANY DB engine that complies with ANSI standard SQL will follow the same general rules. (That's why they call it a standard.)
From your post #6:
Works but I'm getting duplicate pairs.
That can only happen if there are duplicates in your dataset. A basic rule in designing a database is that Access won't tell you anything you didn't tell it first. But the other side of that coin is that if you ask for everything it has, Access will give it to you whether what you gave it was unique or duplicated.