TL;DR: Rinsing the system after cleaning is key but removing radiators to flush isn't necessary and neither is filling, draining and re-filling enough. The general idea is to rinse each radiator individually in-system. A TDS meter (£15 on Amazon) is needed as the water flushing through will look clean long before the meter shows it really is. So I've had issues for ages with gassing and rising pH, and repeated system check failures. Have cleaned system a few times but it looks like the rinsing part was where I was going wrong. This system issue seems to stem from system spending time drained and many small changes over the years - X400 cleaner I was using doesn't really target rust, flux etc, and in any case I wasn't getting it all out. Fernox helped me out, suggesting F3 cleaner. Because I have a low temperature system, it needed to be in-system for a couple of days. Then rinsed out. No drain/refill, just literally flush it through using the filling loop and a drain point allowing the water to flow through each component one-by-one. Since I have cold water feed on the return side, and drain points all over the place, all I needed to do was attach a hose to a drain on the FLOW side, close all auto air vents, open one radiator at a time, and run fresh water through the open radiator until the water ran clear and the TDS meter showed a reading within 10% of the tap water. Repeat for all radiators and other components in system, and done. Another tip, heating the water to about 35°C reduces the oxygen content of the water. So doing so before adding the inhibitor means it's less 'used up' straight away. Finally I was able to send off a Fernox System Health Check and get back a pass. Anyway, hope that helps someone in future.