Hello
I guess I don't really understand the major disadvantage of having low side sensing with a floating ground
There is a bunch of issues, here is one: Let's say you set your supply to deliver 5V. For this to happen, you need Vmeasured to sit at 454.5 mV or so, so that's your controller's setpoint. Now you draw 1 mA. You will get a drop of 1 Ohm * 1 mA = 1 mV across your sense resistors, and the voltage across the output terminals is 4.99 V (in theory), well within your ripple so that's fine. But if you draw 1 A, there is 1 V of drop across the sense resistors and you end up with only 4 V across the terminals. To address this, you would have to take into account Vrsense when computing the setpoint for Vmeasured. That's most likely what they are doing in the design you linked in; it works but it's not very elegant and adds complexity to your controller.
The drawback of a high side measurement is of course that you somehow have to reject the common mode, so that adds complexity to your circuit. By the way, Dave has a pretty recent video on a Rigol power supply where the low side current measurement turns out to be an issue. In his case, the problem manifests itself because the supply has more than one outputs but this might still be interesting. Also, if you somehow manage to short your negative supply output with the circuit ground, you can have huge currents flowing but the drop across the shunt will be 0 V, so you won't detect that. Incidentally this is exactly how you mis-drew the schematic :-).
If I adjust the gain I lose resolution but I've read I can change the analog reference on the mcu to compensate for that. I think it'd be better to just get a more appropriate op amp.
Assume that for a particular gain, the max output of the amp would be 5 V. A 10 bit ADC would convert this to 1023, the largest measurement you can have. But because your amp cannot reach the 5 V rail, you set the gain such that the max output is 4 V. The ADC reads around 818 and you are losing 205 bits right there. To overcome this, you can adjust the reference to 4 V which means that the ADC reads 1024 at 4 V and you recover the full ADC range. In this case however you have to think about how to get these 4 V; a voltage divider will add errors, a precision reference might be overkill etc. So going for an rail to rail amp in this case seems to be sensible. Also keep in mind while choosing a part and/or calibrating that opamps have an offset voltage that may play tricks to you.
I do understand the supply cannot go below ~1.25V.
Nice! Sorry I did not realize that you had built the circuit already when you posted and just wanted to make sure that you were aware of that.
I ran a simulation on circuitlab and found the ripple voltage on the PWM filter to be about 29mV. (see attached) Is that too high for this application?
This really depends on the application and as far as I can see, your main goal with this is to learn about opamps and other circuitry. So it's really up to you to decide whether the ripple is attenuated sufficiently. Sometimes this is very hard to tell, especially for "generic" gear like a power supply. By the way, did you play with the PWM frequency to keep the ripple as low as possible?
Referring to the discussion about input protection: You write that you want to protect the analog input. Are you referring to the microcontroller? In that case, you have to be super careful, because what I wrote before might suggest that your opamp output cannot reach/exceed the positive rail. That would be 5 V and it would appear to be safe in any case as long as the opamp can sustain the 10 V. However you have to be careful because under some conditions, some opamp outputs will indeed exceed the positive supply, without the opamp impedance goodness, though. I would try to figure out whether a clamping diode or a TVS is a good choice for protection here.