I completely agree that using Structs could be made easier, and your idea is one possible way.
What problems are you having in setting default values? If you want different blueprints to all have the same default values in their array, then you could create a base blueprint. Alternatively you could create a struct wrapper around the array. So a struct with just a single array of your other structs inside it. Then inside that wrapper you can add elements to the array and set their default values. Then just add that struct wrapper to your blueprints. Of course your blueprints will then be slightly bigger, because you will need to break the struct wrapper to be able to access the array.
Or you could create a new blueprint Actor component with the store array and the get items function in it, and then add that to your blueprints.