TPersistent muss nicht sein, man kann auch eigene Klasse ab TObject dazu bringen, wenn der Compilerschalter {$M+} vor dem Block der Properties und {$M-} dahinter angegeben wird. Dies schaltet die Generierung der
RTTI für den Bereich ein. Mehr macht TPersistent grundlegend auch nicht. Aber private & protected - ich bin mir nicht sicher, aber diese sollten trotzdem nicht funktionieren - aber ab public sollte es klappen.