I measured the same parts you did on the run I did today. In my file, the outside cut is 1.4982", and the inside cut is 1.4990". The outside cut measured 1.4990" (difference +0.0008") , and the inside cut measured 1.5075" (difference +0.0085"). Both cuts are in the Y direction. Clearly since inside cut > outside cut, these parts will fit. The real question is, why are the cuts different in the first place? Both cuts are in the Y axis, both are using the same bit, and both measure nearly the same in the file. I say inside and outside cuts, but note that these are both outside profiles. I'm just referring to a concave and a convex cut.
Not only that, but since my bit is 0.004" undersized (so the radius is 0.002" smaller than it should be), the outside cut should have been 0.004" larger than 1.4982" (so, it should be 1.5022") , and the inside cut should have been 0.004" smaller than 1.4990" (so, it should be 1.495").
So. The first thing is, the ShopBotters recommend that you always micrometer your bit to get its exact diameter. Good advice. Some shitty bits have been measured to be 1/64" undersized (nearly 0.008" in radius). Now that's a shitty bit.
Anyway, the 1.5022" outside cut turned out to be 1.4990" (difference -0.0032") and the 1.4950" inside cut turned out to be 1.5075" (difference +0.0125).
Note, a different outside cut measured 1.9885", with a file size of 2.0009". Adjusting for the bit, the cut should have been 2.0049", so a difference of -0.0164". This outside cut was in the X direction.
The only thing I can think of is bit deflection, part deflection, and machine flex. If machine flex is not the problem, the first two problems could be solved by cutting all parts about 0.015" oversized, and then running a final pass at the exact size. This way there's not a lot of lateral force to take off the last 0.015".
Other than that, I'd have to carefully debug the machine to find out what's going on. But since the parts all seem to fit... there's not much point