I'm with you. I have really struggled to make that jump from using tutorials to do basic stuff to combing through code from Minecraft, Forge, and other mods to try and understand their examples and come up with something that's kinda similar but unique. Every inch I've gained has been tough.
You implement ICapabilityProvider to "serve up" your inventory (an ItemStackHandler instance) when it's being asked for. You can probably copy my BasketInventoryProvider almost exactly, except replacing the ItemStackHandlerBasket with Forge's built-in ItemStackHandler. As you can see in my notes on that class, I ended up having to implement ICapabilitySerializable in order to get my inventory to persist in various situations. ICapabilitySerializable is an extension of ICapabilityProvider that, in addition to providing the inventory when asked for, also writes and reads the inventory itself into your ItemStack's NBT. At that point you just return an instance of your ICapabilityProvider (or ICapabilitySerializable) from your Item's initCapabilities method, and you're off to the races. It doesn't have to be registered with Forge in any special way beyond simply returning it from initCapabilities (I think initCapabilities is a method that was injected into the Item class by Forge for the very purpose of attaching capabilities to items—initCapabilities is called from the ItemStack constructor when your item is being instantiated in an inventory).
If you want to have a GUI on your item, there's more to it. For that you need the GUI itself plus a GuiProvider. There are examples of those in my mod, as well. I used my item's onItemRightClick method to call up the GUI.