Hi Redsky, thank you for your comments
I use binary modulo's for multiply/divide so I can use shift operations, sometimes it's a bit limiting but so much faster. My PV voltage is much higher so I use low side sensing, any op-amp with a common mode extending below zero will do, I used LTC1637 because I happened to have one
I actually round my current resolution to 8 bit before MPPT processing, with an FSD of 10Amps this still gives a resolution of 39mA that I find more than enough.
I thought the PIC ADC source impedance spec was somewhere around <=2K but I may be wrong, in any case I use just 470R/10nF to kill the real nasties prior to the ADC, I found a lower Fc causes noise integration within the lpf leading to bigger errors.
Of course the whole thing is highly dependent upon the particular noise environment your working with so every case is individual
I agree on the ADC reference voltage or PIC supply rail, I use a LP2950-33 linear to generate 3V3 for the PIC from a ~12V source so the 3V3 is stable and nice and quiet.
My MPPT runs at around 16hZ that I find fast enough to track clouds, fortunately I don't have any tree shading to worry about, I don't bother with the additional complexity/power loss of sweeping because as you say I always find the MPPT spot on after extensive testing although that did take some effort at very low insolations (I use an adaptive step size).
It's good to hear what choices other people make, always interesting