OnTriggerEnter not working when objects speed is from a global variable?

So I have a simple sphere set as player. Rigidbody, kinematic.
I’ve got cubes spawning that move toward the player at x speed. The cubes are Rigidbody’s, Kinematic, set to “Is Trigger” and tagged as “Tree”

My code was working fine before I put the Tree speed into a global variable.

This is in my player controller ( which worked just fine before):

void OnTriggerEnter(Collider other)
	{
        Debug.Log("COLLIDE!");
		if (other.gameObject.CompareTag ("Tree")) 
		{
            Debug.Log("HIT TREE!");
			other.gameObject.SetActive (false);
			count = count + 1;
			SetCountText ();            
		}
	}   

And this is in my Tree movement script:

private float speed;

	void Start () {            
        speed = GlobalControl.TreeSpeed;
	}
    void FixedUpdate() {        
		transform.Translate(0, 0, speed * Time.deltaTime);
	}

It works fine when I set the speed in that script, but when I set the speed to my global variable “TreeSpeed” the OnTriggerEnter no longer works? Any ideas on what I’m doing wrong?

Here is the line in my global script:

public static float TreeSpeed = 90;

As opposed to setting the speed to 90 in my tree movement script.

Thanks so much!

EDIT:
Actually… weird… I changed the script back to not use the global variable and it’s no longer working. I swear it was working before… now I’m really confused. Everything was working fine before I put everything in a global variable script!

UPDATE!
Ok this is even weirder. When I change the speed from 90 to 100 it works again. Any ideas why this could be? It doesn’t seem to work with any 2 digit number as the speed… weird! That’s why I thought it was working before the global variable, because it was set at 100 before I changed it to 90.

change the velocity in Fixed Update or use AddForce instead of translating the object.