Yo revisaría los procedimientos y funciones de la unit
TypInfo especiales para Clases.
Por ejemplo, puedes hacer algo como esto, sabiendo que la propiedad claves es de tipo
"Class":
Código Delphi
[-]
_obj := GetObjectProp(Producto, 'Claves');
Con eso obtendrás un puntero al objeto el objeto Claves y si preguntan por su
ClassName, verás que te devuelve
"TStringList".
También hay otra llamada,
GetObjectPropClass que te puede ser útil.