You cannot achieve your goal this way because your question is based on a mis-conception. The RTTI information gives you the getter/setter as specified in the compiled code. But when you access a property, the RTTI information is not consulted. Rather the getter/setter is called directly.
To illustrate, consider the following canonical read only property:
property Count: Integer read GetCount;
You can query this property with RTTI to find out the method that implements the getter. However when you write this in code:
Writeln(Obj.Count);
the compiler translates this to:
Writeln(Obj.GetCount);
and compiles that. At the call site the RTTI information is never consulted. So any attempt to modify the RTTI information will have no impact on code that accesses the property.
You need to find a different solution to your problem.