I would look to see how the AbilitySystem was implemented as a lot of what you are doing and desire is similar to it.
On top of that the StateModifier sounds like it would work as a UObject. Don’t be so concerned about performance right out of the gate. UObjects can be instanced and you can edit inline as well. It sounds like you are going to be making a Mutator. There are some examples on Tom Looman’s blog and the UT source code.