Doing nesting this complex in a component you add from blueprint is asking for trouble. Blueprint components get completely recreated during construction script execution, with a convoluted and not very reliable process that tries to carry across non-default property values. Definitely better to add the component natively - that way it will only be reregistered during actor construction script, not reinstanced.
Also, you say you don’t really need Instanced, but I think you probably do, and you likely want it for the Program property too. UObject properties should only really be non-instanced if they’re classes or asset references. It’s very rare you’d want to assign with CreateDefaultSubobject and not mark it Instanced. Every instance of your component across all actors would end up referencing a single shared object.
Anyway, bottom line, add natively, and keep nesting to a minimum. The object reinstancing framework is riddled with bugs, they tend to show up as you do more complex and less standard things.