The title lies or this crash report doesn't match your story.
According to the information, you're using minecraft 1.10.2
Most of your mods are for 1.10.2, except for some which are for 1.9.4
You're using an outdated forge, for 1.10.2.
In case you wonder, it also says that for some odd reason you don't have the scala library, so you will need to reinstall things.
If this is really about 1.12.2, please post the right information.
No, because the super class does not return useful values. You need to return the correct values.
Yes. Blocks cannot store data. Block classes are singleton instances, meaning that the data is shared across all blocks of that type. That's why you have a TileEntity for per-location specific data.
Yes, essentially. There is already a "base block class" its called Block.
"CustomName" is still a hard-coded string. And also a bad name.