I went down the same path, and while it does work well for me, I did run into some issues because changing structs in the editor can corrupt blueprints and disconnect nodes. These problems are much better in recent engine versions thankfully. I agree with the above poster who said it’s maybe not the best idea to rely on storing data in a blueprint. I got around this by making a save game class that I can export and import my data definitions from so that it’s easy to back them up and not rely on a blueprint alone to store critical game assets.
In the end, after having done this in my game, I would only do it this way again if I knew I was dealing with many many item types. If I only had a few dozen I would not define them dynamically like this but it has it’s advantages when you have hundreds, as I do.
For what you are doing, based on the structure you have there I’d recommend not trying to store everything in one giant struct like that, but rather separating out like things into their own data structures. It’s a pain to get and put things into structs that are nested deeply.
Another thing you could consider is that you have access to data tables, so you could develop your item data in excel or similar and import those tables and get the item data based on a key/value