Позиции всегда одинаковы, потому что вы одинаковы. Смотрите строки добавления
myObjects.Add(copyPrefab);
copyPrefab.transform.position = new Vector2(2, 0);
myObjects.Add(copyPrefab);
Это тот же объект, и поэтому не имеет значения, на какой индекс списка вы смотрите. Вы не можете быть в двух местах одновременно.
Я не знаю, что вы имеете в виду, не желая создавать экземпляры. Вы имеете в виду второй сборный дом? Если это так, вы не можете иметь оба эти различия. Вы должны сделать:
copyPrefab = GameObject.Instantiate(prefab, someTrans, someRot);
myObjects.Add(copyPrefab);