В другом классе нет ссылки на _floatingCont, соответственно и удалять нечего.
И вообще метод contains вернет true, даже если фактически объект не содержится в самом контейнере, а содержится в каком-то из его дочерних. У contains есть второй параметрб который как раз отключает рекурсивную проверку.
Но вообще лучше не использовать contains, а использовать

Код AS3:
if (_floatingCont.parent) _floatingCont.parent.removeChild(_floatingCont);
То есть проверять наличие родителя.
И еще одно. Не надо путать stage и документ класс.
Вначале в Main написано addChild(_floatingCont);
Это совсем не означает, что объект добавился на stage.

Код AS3:
addChild(_floatingCont);
равнозначно записи

Код AS3:
this.addChild(_floatingCont);
а не

Код AS3:
stage.addChild(_floatingCont);
Значит _floatingCont добавляется в объект Main, а не на сцену. То же самое касается и всех других контейнеров. На сцену объект попадет только при явном указании на это, как в

Код AS3:
stage.addChild(_floatingCont);
п.с. Советую почитать что такое
инкапсуляция и зачем она нужна