Первое:

Код AS3:
if (play_screen) {
removeChild(play_screen);
play_screen = null;
}
То, что play_screen не равен null еще не говорит о том, что он есть в дисплей листе
Надо так:

Код AS3:
if (play_screen && this.contains(play_screen)) {
removeChild(play_screen);
play_screen = null;
}
Ваще жесть:

Код AS3:
main_class.stage.addChild(block);
Хотя-бы так, хотя изначально пипец (к слову сказать обращения к родителям нужно свести к минимуму):

Код AS3:
main_class.addChild(block);
Ну и да, в последнем классе раскомментируйте проверку.