Here are plots of the various S/N distributions of the PSF flux:
Raw instrumental:

jointcal calibrated (calibrations get applied via the persisted photoCalib dataset):

meas_mosaic using OLD-STYLE calibration (i.e. using meas_mosaic's own applyMosaicResultsExposure() function – which uses the persisted fcr dataset to apply the calibration):

meas_mosaic using the photoCalib object persisted by meas_mosaic:

As far as I'm aware, all of the above should "work" (i.e. the last two plots should look the same as they are based on the same calibration...it's just the path of persistence and application that's different). Note that the flux distributions all look ok, so the pathology in this last plot is coming from the flux errors.
In case it's of interest, for both the jointcal and meas_mosaic persisted photoCalibs, I obtain the calibrated fluxes and errors via:
photoCalib = dataRef.get("jointcal_photoCalib")
|
calibratedFluxAndErrArray = photoCalib.instFluxToNanojansky(catalog, baseName)
|
catalog[fluxKey] = calibratedFluxAndErrArray[:, 0]
|
catalog[fluxErrKey] = calibratedFluxAndErrArray[:, 1]
|
I couldn't tell 100% from the description, but are you mixing and matching meas_mosaic and jointcal outputs and application? Other than being insanely slow, I didn't think that was supposed to work.