Clarification on Batching (tree)

I am creating several trees. I create groups of trees every so many frames. I have dumbed down my actual script to simplify the problem. My prefab is set static, I am not using copies of textures or scaling. While I can procedurally create simple meshes (roads) that will batch, for some reason I cannot get a prefab tree to do it. Based on the above comments you will see I did look at existing unityanswers before posting.

    public static void treeGenerator(int count, string prefabName)
    {
        float x = 0f;
        float y = 0f;
        float z = 0f;
        Vector3 newRot = new Vector3(0f, 0f, 0f);
        
        int i = 0;
        while (i < count)
        {
            //get randomx
            x = Random.Range(0f, 2049f);
            z = Random.Range(0f, 2049f);
            //get actual y
            y = Terrain.activeTerrain.SampleHeight(new Vector3(x, 1000, z));
            //get random rotation
            newRot.x = 0;
            newRot.y = Random.Range(0f, 359f);
            newRot.z = 0;

            Quaternion convert = Quaternion.Euler(newRot);
            if (!colidesWithWater(new Vector3(x, 1000, z)))
            {
                Transform GameObj = Instantiate(Resources.Load(prefabName), new Vector3(x, y, z), convert) as Transform;
                i++;
            }
        }
    }

Here is a pic > 1

Can anyone slap the stupid stick at my mistake?

Well, since it has been an eventful week responding to all the answers provided by the community :wink: I will just answer the question myself.

Damnit Jim it was the shader. Swapped out the shader and batching galoreā€¦