Во-первых смущает нотация записи. если я правильно понимаю, и pTStage=^TStage
то почему ты на него ссылаешься не как s1^.property, а как s1.property? не есть гуд.
а во-вторых... если эти TShape ты создаешь на своей форме, почему ты делаешь Create(Nil)?
ну подумай, как будет назначен Owner новому компоненту? Потому-то и не работает обработчик,
ведь объект получается "висит в воздухе". Подправь и все получится