You should save a reference to it before you register it in AddReloadListenerEvent and then you can access that reference from wherever you need it. Here is an example of how Forge itself does it for the LootModifierManager.
That completely depends on what your listener is for. For example, the vanilla RecipeManager has a method 'getRecipeFor()' which is used in various places, one of them being the furnace to see if an item can be smelted.
To create your own data driven system you can extends PreparableReloadListener (or its subclass SimpleJsonResourceReloadListener) and then register it in AddReloadListenerEvent.
A block should never be bigger than the standard 16x16x16 size. If you need something bigger than that you should split it into several different blocks (like how tall grass does it).
You need to add this field to the model json file of your block
"render_type": "minecraft:cutout"
or
"render_type": "minecraft:translucent"
depending on if if those parts are semi-transparent or fully transparent.