Instantiate Y Pos Changes - No idea why

Simple spell casting script. Instantiates a Particle System at the specified empty gameobject point. This works without any issues.

I then place it as a child under the main character (To follow the character as it moves around) but this then changes the y position value randomly. Even though when selected in the inspector, it does not change at all.

Any ideas as to what I have missed or getting wrong?

#pragma strict

var castingPoint:GameObject;   //Sets Vector3 Information for casting location
private var selectedSpell:GameObject; //Sets GameObject to spawn

function CastSpell()
	var spellcast = Instantiate(selectedSpell, castingPoint.transform.position, castingPoint.transform.rotation); //Creates Spell
	Debug.Log (castingPoint.transform.position); //States location it spawned in

Screenshot of Unity (With Console & Inspector)

if u make it a child of an empty gameobject is it doing the same thing? if not
i think it might be good if you give screenshot of the parent gameobject with its components

Workaround so far

Hardcoding in the local y value. (Would still value in answer, especially if i tweak animations, etc.

   	var spellcast = Instantiate(selectedSpell, new Vector3(castingPoint.transform.position.x, 1.3, castingPoint.transform.position.z), castingPoint.transform.rotation);
	Debug.Log (castingPoint.transform.position);