There is only to reason to fail in a cast, first one: your variable is null, In your images I saw that you set your variable item selected before call your function “Add to Inv”, but how did you set the value for your metal variable?, if is null then null so you cannot cast, there is a node to check whenever a variable is null called “IsValid”, and the second one is: if you set properly your metal variable, the only reason to fail has to be because that specific object is not an BP_ItemMaster child
Check all this!
Cheers!