@Matt - Merged your Gatherable.cs code into my ItemManager class (which interacts with the Item class and Inventory class). Inventory is a MonoBehavior that gets attached to the player. ItemManager is a MonoBehavior which gets attached to the item (in place of your Gatherable class).

When your code triggers (when the button has been held long enough) this code finds the Inventory Component on the player and calls the AddItem() method.

I left your Gatherable.cs in case you want to tweak more things, but feel free to edit the ItemManager.cs file directly.