意味分からん設計だな
エスパーして俺が設計しなおすと

TParam = class
  現在の変換行列とか描画対象とか
end;

TClass1 = class
private
  子のリスト
public
  property pos
  property rotate
  property scale
  procedure draw(p: TParam); virtual;
end;

ってやって

TRect = class(TClass1)
public
  property width
  property height
  procedure draw(p: TParam); override;
end;
って追加していくんじゃだめなの?

delphiのカスタムコントロールそのままの設計だけど

子の描画が絶対ならdrawとdrawcoreにわけて、drawcoreだけprotectedにしてvirtualにしてもいいけどな
子を描画してその描画結果に対して何らかの処理を施すみたいなのがあると、draw自体を変える必要があるから↑で書いたのが柔軟性があるけど