Colliders overlap with follow script

All of my enemies, or anything that seeks and follows something else, uses the same follow system, and so considering how they all take the same path, they occupy the same space, even though they have a collider component.

using UnityEngine;
using System.Collections;

public class ExperimentalRocketGrenade : MonoBehaviour {
	public GameObject Explosion;
	public GameObject Char;
	public ExperimentalDeath Damage;
	public float Health = 10;
	public GameObject Target;
	public float BulletSpeed;
	public Transform TargetGo;
	public bool isDead;
	public bool isNearObject;
	public Transform _myTransform;
	public Transform Player;
	public GameObject PlayerObject;
	public float damping;


	//Use this for who knows what
	void Awake () { 
		_myTransform = transform;
	}

	// Use this for initialization
	void Start () {

		isNearObject = false;

		Target = GameObject.FindGameObjectWithTag("Player");

		TargetGo = Target.transform;
		
		ExperimentalDeath Damage = Char.GetComponent<ExperimentalDeath>();

		PlayerObject = GameObject.FindGameObjectWithTag("Player");

		Player=PlayerObject.transform;

	}

	void LateUpdate () {
		Quaternion rotation = Quaternion.LookRotation(TargetGo.position - _myTransform.position);
		_myTransform.rotation = Quaternion.Slerp(_myTransform.rotation, rotation, Time.deltaTime * damping);
	}
	
	// Update is called once per frame
	void Update () {

		if (BulletSpeed < 200) {
			BulletSpeed += 0.3f;
		}

		if (damping < 4){
			damping += 0.005f;
		}

		if (isNearObject == true) {
			Debug.Log ("Is in range");
		}
		
		if (Health < 0.1) {	
			
			isDead = true;
			
			EnemyDie ();
		}
		
		GameObject Char = GameObject.Find("MonstercatChar"); 

		transform.position += transform.forward * BulletSpeed * Time.deltaTime;

		if(Vector3.Distance(TargetGo.position, transform.position) < 5) {

			Debug.Log ("Is Damaging " + Char);
		}
		
	}

	public void EnemyDamage (float amount) {
		Health -= amount;
	}

	void onTriggerEnter (Collider other) {
		Debug.Log ("Object In Range");
		if(other == GameObject.FindGameObjectWithTag("Player")){
			Debug.Log ("Bullet Hit");
			Instantiate(Explosion, transform.position, transform.rotation);
			Destroy (gameObject, 1);
		}

		if(other == GameObject.FindGameObjectWithTag("Bullet")){
			Debug.Log ("Enemy damaged");
			EnemyDamage(1);
			Destroy (other);
		}

		isNearObject = true;
	}

	void onTriggerExit (Collider other) {
		isNearObject = false;
	}

	void EnemyDie () {
		Instantiate(Explosion, transform.position, transform.rotation);
		Destroy (gameObject, 1);
	}
}

Switched to nav mesh and set drag levels if the rigid body to infinite