Ensuring terminal correlation matches the input correlation on a calendar spread option with unequal fixing dates (Asian arithmetic averaging) MC

This is a rather unique question, which really has no "solution" in the literature that I've run across. We have a Monte Carlo simulation that simulates all the "fixing dates" of an arithmetic Asian option across the time window of a calendar spread. For example, November vs. December on Brent crude. It then averages these simulated prices (which are correlated pair-wise), so the terminal paths will always match the input correlation matrix.

Now we've worked with a financial engineering firm who modeled this up differently, and it did not preserve correlations (basically the correlations were made time-wise instead of pair-wise) - in a calendar spread, you normally have no overlapping time periods, so the "correlated" random numbers in such a case are never actually correlated (if they are, it's random).

So there is a case where our simulation model diverges as the one described above, and this is when the number of fixing dates for each leg are different. For example, let's suppose 1 leg has 15 fixings, and the 2nd leg has 30 fixings, So let us assume these fixings are from Nov 1 -> Nov 15 (leg1) vs. Dec 1 -> Dec 30 (leg2). In such a case, there are only 15 pairwise correlations generated. The remaining 15 fixings do not have a "pair," and therefore, do not retain the input correlations. So we began to discuss this with some creative thinking, although I'd like to hear from those out there in the field how they handle such a situation.

My theoretical approach (the first thing that came to mind) in the case of a 2 leg calendar spread as described (15 fixing pairs, 15 non-pairs) would be to expand the input correlation matrix to generate 3 pairs: leg1:leg2_a:1eg2_b; where leg1:leg2_a and leg1:leg2_b have the same correlation as leg1:leg2. To be clear, #fixings(leg1) = 15, #fixings(leg2_a+leg2_b) = 30. In this manner, one would simulate 3 correlated GBMs instead of 2. Now we simulate Nov 1 vs Dec 1 vs Dec 16 -> Nov 15 vs Dec 15 vs Dec 30 as the alternative (leg1:leg2_a:leg2_b). So using this method, we are using correlated random numbers for all fixing dates.

Does anyone have a better approach?