Possible venu/Fenix7X firmware issue

I've spent weeks trying to track down an issue with interval data on all my apps from the optical source. My code has worked for over a year then suddenly broke after a firmware update. There seems to be some strange behaviour on real devices which is not mirrored in the simulator which always seems to work.

1. Toybox.Sensor.setEnabledSensors doesn't return result I expect (>=CIQ 3.2.0)

_ans = Toybox.Sensor.setEnabledSensors( [Sensor.SENSOR_HEARTRATE, Sensor.SENSOR_ONBOARD_HEARTRATE]);
returns [] in the simulator and [4] ie SENSOR_HEARTRATE on the watch and not [8] as expected ie OHR.
2. getRegisteredSensors returns not an iterator but an object containing an index and type. If you try to access them the simulator crashes.
3. enableSensorType with (Sensor.SENSOR_ONBOARD_HEARTRATE) and (Sensor.SENSOR_HEARTRATE) always seem to return false. I would expect a true if the watch has either them already enabled or available to be enabled eg ONBOARD should always be true and a strap true if enabled in accessories. 
4. Using enableSensorType(Sensor.SENSOR_ONBOARD_HEARTRATE) kills II data from the OHR sensor.
If I remove the enableSensorType for Sensor.SENSOR_ONBOARD_HEARTRATE and just set a listener then I get Intervals for the OHR source (after a longish delay of 10 seconds). The ANT strap works in either case.
It appears it's not only my HRV apps that have this issue according to some  of my users.