I am still learning a lot of stuff, but this is a 12V sealed lead acid battery charge circuit I put together. I have yet to build or test it. But I am pretty sure in theory it should work. I figured it may help to just put it up hear since it accomplishes what you are trying to do. I am not saying you have to use it, but maybe it will help.
3/4 of the circuit it just power management, regulation, and a basic ATTINY setup.
The charging portion is simple I think. It is simply a 15V power source that goes through a high side P channel MOSFET, a current sensing resistor setup, and then through a diode and battery.
To control the high side MOSFET with the arduino I am using a PWM signal to control an NPN transistor. By varying my duty cycle I can control how much the transistor is On/Off In effect changing the voltage in between the pull up resistor and the transistor. Then I just put a low pass filter to turn the PWM into a pseudo analog signal to control voltage at MOSFET gate. Doing so allows me to turn MOSFET all the way on (voltage limited charging circuit) or turn MOSFET partially on (current limited circuit). I can also completely shut off transistor and MOSFET gate gets pulled up to 15V effectively shutting off charging.