The circuit should work, but there are a few potential issues.
You are using the main regulator as the voltage reference. That will be get the largest voltage drops due to resistance in the wires etc. A separate regulator for the voltage reference would be neater, but it would have to be referenced to the positive side of the cell being charged. There is no need to regulate the main supply, as long as the op-amp and the heatsink on Q1 can take the largest unregulated voltage.
The potentiometers have no resistors at the top and bottom. R1 can be used to adjust over any voltage between 0 and 9 V, when you will only want 4 - 4.5 or so. If you put a 33 k resistor in series with both ends, you would get a range of 4 - 5 V or so. You could juggle the values a bit and put a slightly larger resistor at the bottom end if you wanted. With the 33k resistors, you will turn the resistor 7 times as much to make a voltage change, so it will be much easier to give fine adjustments.
You could similarly adjust R2 with a 6.8 k or so between it and the op-amp. That will reduce the upper range of the current limit and give somewhat easier adjustment. There is no harm having adjustment that goes to zero so there is a definite downside to putting a resistor in series with the other end of the R2. The upper limit on the current is given by R3, and is about 1.3 A, at which point the base of the darlington is at about 5.7 V. A 6.8 k resistor would keep the current a bit below that.
You should have a stabiliser capacitor between the output and the inverting input of the op-amp to stop high frequency oscillation. Also you should put a resistor the wire between the battery and the inverting input, so that the capacitor dominates at high frequencies. In this context, high frequency is anything above 1 Hz or so, but you should try to reduce the gain above 1 kHz or less.
Finally, you should have a resistor between the non-inverting input and positive. That is there so that if the wiper of R1 doesn't make contact, charging will stop, rather than doing something unpredictable, like overcharging the battery. The value of that resistor will affect the voltage range slightly, and something like 1 M should be fine, but I haven't done the calculations.