Mathf.MoveTowards wasnt working because my deltavalues were too small, so it was a floating point error. I fixed it by incresing the values a bit.
Mathf.movetowards is essentially the same as Mathf.Lerp but instead the function will ensure that the speed never exceeds maxDelta.
Negative values of maxDelta pushes the value away from target.
perhaps you need to negate your maxDelta?