For registry-based things (like blocks for example) just store their registry name (e.g. "minecraft:stone").
For maps, lists and other collections you usually want to use ListNBT.
For custom complex objects you need to break them down into their primitive parts. For example if you have a class with a String field and a double field, you'd store that class into a CompoundNBT with one string value and one double value.
The forge installer is designed for the official launcher. MultiMC uses its own proprietary system instead of reading the data from the official launcher. It is therefore up to MultiMC to support newer versions of Forge. Talk to them.