I would store a *list* of IsotonicRegression objects, one per class. Then in predict proba, each IsotonicRegression object can be used to calibrate one column of estimator.decision_function or estimator.predict_proba.

You can use LabelBinarizer to obtain the OVR labels.

The binary case must be treated separately as only one IsotonicRegression object is needed.