got it working. It was that ChangeEndValue does not like floats so for anyone that is interested, you do not add the restart line at the end. you just add a new DOMove under it. Here is the code for X.
Tweener followtweenx = _target.transform.DOMoveX(to.Value.x, duration.Value, snapping.Value).SetAs(setFinal);
followtweenx.OnUpdate(() =>
{
float xmove = to.Value.x;
if (!x.IsNone) xmove = x.Value;
if (toObject.Value != null)
{
x = go.transform.position.x;
}
if (prevTargetPos.x != xmove)
{
prevTargetPos.x = xmove;
followtweenx.ChangeEndValue(xmove, duration.Value, snapping.Value);
_target.transform.DOMoveX(xmove, duration.Value, snapping.Value).SetAs(setFinal);
}
});
I also found other little hiccups in the local script so here is the full script. It has the old code commented in case anyone would like to switch it back, but it has the local fixes and the update I added.
edit: with this script the ease type goes really slow with any in's but not on the outs when the object moves.