fvMeshDistribute was reordering the zones (so all processors have the same zones) but was missing out reordering the zones on the local bit of mesh.
(Workaround: have all your cellZones alphabetically ordered before running redistributePar. This is now fixed - it preserves the input zone ordering)