Seems that Axis.Inverted operates only on the graph coordinates, i.e. the invisible coordinate system behind the chart, and thus flips the entire chart depending on the first y axis' Inverted value.
In order to invert an individual y axis you must add a TLinearAxisTransform to the transformations of the axis, and you must set the Scale parameter to -1 for inverted direction (+1 means normal direction). With multiple y axes you also need the usual TAutoScaleAxisTransform. Both transforms must exist within the same AxisTransformations component. Note that the inversion must be executed first, therefore the LinearAxisTransform must be the first one in the list. Do this for both y axes.
After this modification the code flipping the FAxis.Inverted cannot be used any more. Your new code only must set the Scale factor of the corresponding LinearAxisTransform to -1 when the checkbox in the charteditor is checked, or to +1 when it is not checked, or - simpy - LinearAxisTransform.Scale := -LinearAxisTransform.Scale with every checkbox change.
See the modified demo. The related code is in unit ceAxisFrame, methods GetLinearAxisTransform and cbInvertedChange. It is assumed that the transformations already have been set up in the object inspector - the chart editor does not create them (this is one of the reasons why a general, all-purpose chart editor is very complex, as I wrote in the other thread).