I ran into this issue as well and while I do not have a direct answer to your specific question, I do have a work-around.
Create an empty prefab with a Halo on it, and then Instantiate:
public GameObject HaloPrefab; // empty with halo applied to it...
// then, later on, when you want to add the halo:
GameObject halo = Instantiate(HaloPrefab) as GameObject;
halo.transform.SetParent (transform, false);