The problem with a mux to the ADC is that you really do not want a high voltage over your current shunt.
High voltage over the power shunt defines the minimum voltage needed for that current.
Instead of putting a mux to the ADC, consider using a 2nd power MOSfet and a much lower value shunt resistor in parallel.
If accuracy is not so important for higher currents, you can simply assume a fixed current ratio between the shunts.
For better accuracy you can characterize and calibrate for different currents and compensate in software.
For better accuracy than that you need to measure the current through (voltage over) each shunt individually.
You can either use simple mux or analog switches such as 4066, or use a multi channel ADC such as the MCP3204 (I think that's the number).
There is also no need for buffering the voltage to the ADC.
The output resistance of your shunt resistor is 0.1 Ohm.
The LM358 also has a pretty high offset voltage. Instead of the Opamp buffer I'm thinking more along the line of a 100Ohm or so series resistor with a capacitor for a low pass filter and protection against "weird" spikes and "stuff" happening.
A capacitor on the input of the ADC also reduces the dynamic input impedance, especially for successive approximation ADC's.
Also, do not put the negative input of the MCP3201 directly to GND at the chip. Use it on the GND lead of your shunt resistance. You are likely to have a significant voltage drop over your PCB tracks, and copper has a high temperature coefficient, which is hard to compensate for in firmware.
Another thing:
You have a pretty high and symmetrical input voltage from your bridge rectum fire and a LM337L with a significant voltage drop. A TO-92 gets hot pretty easily. It may be good enough, but you have to test for this.