You shouldn't be using JCh_to_Jab with CAM16. The CAM16-UCS J'a'b' is a very bizarre construct compared to CIELAB, as a' and b', when converted to cartesian, output hue and ln(1 + 0.0228M)/0.0228, where M is colorfulness. It does not output hue and chroma. Likewise, J' is equal to 1.7*J/(1 + 0.007J). Thus it is almost J, but not.
You should probably just convert straight from XYZ to JCh, without using the UCS.