Object teleports to world center instantly.

Hello, I am attempting to have an object teleport/run to the player when not looked at (or at all) and while it works- for some reason the object just teleports to the world center (0,0,0) immediantly every frame so you end up with a jittery mess that teleports to you then instantly to the world center. (testing this outside of viewing constraomts results in the object rapidly teleporting/moving towards the player but also back to the center.
relevant code:

void Hunt()
    distance = Vector3.Distance(victim.transform.position, transform.position) / maxDistance;
    currentSpeed = Mathf.Lerp(0, teleportSpeed, distance);
    Vector3 direction = (victim.transform.position - transform.position).normalized;
    if (!watching)

        Quaternion lookAtThis = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), 100 * Time.deltaTime);
        transform.rotation = lookAtThis;
        transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);

        transform.position = Vector3.MoveTowards(transform.position, victim.transform.position, currentSpeed);
        currentSpeed = 0;
        transform.position = initialHeight;

Intended behavior is for the object to rapidly move towards the subject (weeping angel) when not looked at, and stop in the tracks when looked at- which is kinda hard to do if it is constantly teleported to the center.

If you want to achieve a natural movement, I would recommend you to use transform.Translate or Rigidbody.velocity if the object has a Rigidbody instead of setting directly the position. And remember to use Time.deltaTime if you are not going to use Rigidbody.velocity (the physics engine does so for yourself)