何かをしたらクリアする必要がある、なので重くなる、といよりも、
現状ですでにクリアしています。

難しそうでいて、やったら一番早いだろうな、と思うのが、
やはり
TSModのFuncImagePngDialog.cppの
StartPngDialog
EndPngDialog
_WaitPngDialog

をコピッて、1枚のpngではなく、連番のpng(描画と消去をどんどん違うpngに対して行う)への対応から実験してみる、
(描画→消す→描画→消すを繰り返す)
というのが一番手堅いのではないかと。

結局、アニメーションpng再生関数などという汎用的なものは
この世には存在しておらず、
アニメーションpngを分析→各pngと分母時間と分子時間(ようするに表示時間)に
分けるという作業が入るだけなので、
まずは、連番pngで成立するのか、とか

あるいは、画像ダイアログ表示の関数に短い時間(100フレームとか)を指定して
切り替えていくとどうなってしまうのか、とか。

その辺から実験してみてください。