Yeh well LM358 would do more than TL072, the latter simply does not pull down low enough at all. Not that the slowness of the former would do much better, but maybe it would at least run.. heh, hmm.
Have you tried just biasing up ISENSE, say 10k to VREF? That halves the range needed by the shunt resistor. Also, this is CCM isn't it? Those inductors look rather large, 22uH 8A, that's the DC rating right? So more than that, you require slope compensation: put an NPN emitter follower on the RtCt pin, and run about 3.3k from emitter to ISENSE. This both biases up ISENSE in the same way, and adds timing ramp to it, making it stable down to, some modest amount of ripple, say 50%.
Note that this restricts the range of ISENSE --> range of COMP, so the compensation components may need to change (larger C, smaller R).
Oh what the hell, R13 is in the wrong place again, you looked up the wrong... well, there are a LOT of wrong references out there, sadly... it's not your fault. This basically sets it to gain ~67 so the regulation is poor. Easier to compensate, yes, but is that worth the cost? Best is R+C in series, between COMP and FB. I'd suggest starting with 10k and 10nF, and adjust from there to get reasonable step response. Hardly matters anyway, really, as long as it's stable at idle and with a battery attached; it can be maddeningly slow and still more than fine for charging!
As for CS amps, note you can use 5V compatible devices from VREF, or 12V from VCC. You need >20MHz GBW, and "single supply" (input and output range includes GND) or RRIO type. I don't recall what I used last time I needed something exactly like this; would have to go shopping.
Similarly for ISENSE, R1/Q4 can be tweaked by biasing the base down a bit; you've already got R5 there, a little resistance from base to GND would do. Note this makes the bias dependent on VOUT -- a foldback current limiter. For regulated VOUT, this will be fine, but if you prefer more stability/precision, use three resistors, a diode and NPN to make a CCS.
Also, consider turning up the LM317 a couple volts, it's at 8.52 as shown. 10 would be better. Could also use a zener clamp + depletion MOS (source follower), just crude voltage limiting is all that's needed. Actually, is LM317 cheaper than a DMOS? Haven't checked... probably is, too.
Hmm, the reverse protection thing might not turn on at idle. Which would be a bit frustrating as a power supply, but, arguably a safety feature for charging? To better enforce this, maybe add a B-E resistor to Q6 -- this gives a leakage path through Q2 (consider both capacitance and leakage) so it can start off (notice this is a flip-flop configuration, so it latches on once started). You might also have something that turns it off later, once current goes to zero (and which itself must stay latched until output goes to zero i.e. the battery is disconnected, or, to be a bit more subtle about it, and useful: until battery voltage drops below charging threshold, where it will start back up again). The disable can also force off the controller (pull COMP to GND; it'll still be drawing some ~mA supply current, it doesn't have a proper power-down unfortunately).
Hmm still not quite everything there, would have to be.. stays latched until below charging threshold (battery still connected), or voltage goes to zero
and then back up -- showing that a battery was disconnected and reconnected. So there's more than just two nodes in the state diagram, and the transitions between them need to be correct... the kind of thing that starts to get a bit of a pain to do in discrete logic -- not that it's infeasible, but it's starting to get just a little bit complicated, and honestly might be worthwhile to add an MCU. Or charge controller IC proper.
Cheers!
Tim