I have run your code, and yes, I reproduced your issue. Then I tried different situations, like:
A. (original test) Return all orders from the same customer. Only one of the order.OrderRequisition gets the CustomerAddress attached (always the last one in the list).
B. Return only one Order (one of those orders that its OrderRequisition didn't get the CustomerAddress at Test A). Amazingly this worked.
C. Return all OrderRequisitions (so just two prefetchPath levels). The behavior is the same as Test A.
D. Return only one OrderRequisition (one of those requisitions that didn't get the CustomerAddress attached). This worked.
For all tests, the generated SQL is correct. Then I found the pattern: when you get two or more orderRequisitions with the same CustomerAddress, only one of them is used to set the CustomerAddress. And that is because your OrderRequisition->CustomerAddress relationship is set as one-to-one (1:1), but obviously this is not the case, as you can have the same CustomerAddress for many OrderRequisition (1:n). In fact all your 7 order requisition records are pointing to just two different customer addresses. When you have 1:1 relationship, the fetched PK object (CustomerAddress) can only reference one FK object (OrderRequisition) and viceversa. To understand this, please read FK-PK synchronization
So, to fix that, modify the OrderRequisition->CustomerAddress relationship in your LLBLGen Project and set that as m:1 (OrderRequisition is the 'many' side, CustomerAddress is the '1' side).