I have years and years of sql server experience. I would like to help you but it is hard to follow what your tables are and what the goal is. Are you running these queries from an application? If so, what language?
In general UNION is a very inefficient query operator, but is required in some cases. I suspect in this case the results could be achieved with something like " where (x and y and z) or (x1 and y1 and z) or (x and y2 and z)" etc.
Perhaps you could post sample table data for each table(4 or 5 rows in each and ALL columns) and the result set you would like to see.