Are you passing in the correct struct to add? At the start of your event you are passing in a struct that is unused. Does this carry the picked up item information in it?
Could it be that you are constantly passing in an internal variable instead of the new information?