Where does this custom inventory data "live" at runtime?

Not sure I understood this correctly. Do you mean the editor behaviour? Or runtime?

If I have a UItem class and then a UContainer class then I can easily have a TArray<UItem*> property on this container to store multiple UItems.