ウィジェットを切り替える

Widgetが参照切れを起こしていますね。

「Widgetを作成」が呼ばれるたびに新しいWidgetが作成されて、変数に格納されるため、それまで参照されていたWidgetが誰からも参照されず残ってしまいます。
その後Removeされるのは新しく作った方なので、古い方は画面に残るという結果になります。

Widgetの消去(画像2枚目)を先にするか、Widget作成は1度だけ行うようにして、AddToViewportとRemoveFromParentで表示のみの切り替えにする良いかと思います。