Вам рисовать нужно внутри нового созданного вами символа, поэтому не надо было добавлять _root перед именами мувиков.
А для перевода координат между _root и внутренними координатами мувика используйте globalToLocal и localToGlobal.
И еще, общие замечания.
1) От того где находится код никак не зависит, на какой глубине будут выполняться операции по созданию новых объетов, определенные в AS.
2) В готовом ролике нет слоев. Там есть только глубины, Z-координата, и области перекрытия определяются, исходя из глубины. Глубина и слой в FLA-проекте - совершенно разные вещи. Наличие того или иного символа на определенном слое, если нет исполняемого кода, работающего с глубинами, дает только начальные взаимные расположения положения объектов в готовом ролике по z-координате. Причем для мувиков, созданных руками, глубины лежат на -16 000-х глубинах, гарантируя таким образом объектам, созданным с AS, свободные глубины от 0 и выше.
Главное для вас - рисовать в мувике, расположенном в слое, который находится поверх тех слоев, где находятся объекты, которые нужно перекрыть.
Вот в этом примере создается программно мувик bg на глубине 0 и в нем рисуется прямоугольник.

Код AS1/AS2:
this.createEmptyMovieClip("bg", 0);
this.bg.moveTo(0,0);
this.bg.lineStyle(0,0x000000,0);
this.bg.beginFill(0xD1CCB3, 100);
this.bg.lineTo(100, 0);
this.bg.lineTo(100, 20);
this.bg.lineTo(0, 20);
this.bg.lineTo(0, 0);
this.bg.endFill();
Сделайте нечто подобное и не забудьте о переводе координат.