Hi Gazzah,
just a couple of other thoughts...
Unfortunately I expect the round robin for calling mozziAnalogRead() will give confusing results.
mozziAnalogRead(_pin) does 2 jobs. It gets a result for _pin and requests a read to happen in the background which it will get next time around. The results are on a stack so if you don't call mozziAnalogRead() for your pins in the same order each time, your stack gets mixed up and the results won't be the right ones for the pins you're reading.
Also, setupFastAnalogRead(FASTEST_ADC) only affects the background reading process, it won't save time when you call mozziAnalogRead() to get and request the reads. FASTEST_ADC might give less accurate results than just leaving it at the default.
mozziAnalogRead() is fairly efficient, so calling all your pins each updateControl() wouldn't be a big hit, and you could do setFreq() in the round robin. Or you could do a more complicated/confusing version calling mozziAnalogRead(_pin) once each updateControl(), updating and keeping track of which pin it's receiving and requesting as you cycle through the pins one per updateControl().