duplicateMovieClip(_root.FireCrystal, "FCMC"+firecrystals, 1000+firecrystals);
[...]
duplicateMovieClip(_root.DarkCrystal, "DCMC"+darkcrystals, 1000+darkcrystals);;
The depths have to be unique, you're creating them at the same depth. You could try doing 1000+firecrystals and 2000+darkcrystals but that is a silly way as you're going to continue to have problems with depth management unless you decide what range of depths will be used for what. Look up getNextHighestDepth()
duplicateMovieClip(_root.FireCrystal, "FCMC"+firecrystals, _root.getNextHighestDepth());