Why does my enemies' movement change whenever my player moves toward and away from the enemies' current position?

Whenever I stand still, the enemy starts moving toward me, but whenever I start moving toward it, it starts moving away, and when I move away from the enemies’ position, it starts moving more quickly toward my position.

var Enemy : GameObject;

var Player : GameObject;

var Range : float;

var MaxRange : float;

var Speed : float;

function Start () 

	Enemy = GameObject.FindGameObjectWithTag("Enemy");

	Player = GameObject.FindGameObjectWithTag("Player");


function Update () 

	Range = Vector2.Distance (Enemy.transform.position, Player.transform.position);

    if (Range <= MaxRange) 
    	transform.Translate(Vector2.MoveTowards (Enemy.transform.position, Player.transform.position, MaxRange) * Speed * Time.deltaTime);

I assume this is your script on the enemy? It is strange to do a FingGameObjectWithTag() to find the game object this script is attached to. The real problem here is your use of Translate(). Translate() movements are relative, and, by default, they are local. Your MoveTowards() is using world positions. The typical use of MoveTowards() would be

transform.positon = Vector2.MoveTowards (transform.position, Player.transform.position, Speed * Time.deltaTime);

'Note that I’ve removed your ‘MaxRange’. Speed will be Units per second.