Your approach might work but I personally don’t see any reason to split impementation to sructs which will hold info about items and objects. First of all structs can’t be really instanced in blueprint, they are treated as simple data structs.
IMO best approach, is to crate simple struct describing slot (index in array, reference to item object).
Then create simple uobject, which will implement virtual functions for getting images, descriptions and what not.
Inventory in form of linked list is good for games which doesn’t complex inventories like shooters, or platformers. Anything where you need more complex mangment or complex items it will fall short, mainly because of increased complexity of main class.
I wouldn’t worry about performance, unless you do something realllly bad, you won’t have any issues and reliability is much more important in this case. Imagine players loosing items or duping them - game broken beyond recovery.
If you want sample implementation check out links in my signature for ActiomRPGGame, GameInventorySystem module. It have almost feature complete implementation.
I can write more when I will be back at home, posting from tablet is not that good for long posts (;