Well, what did you expect? If you haven't created a blockstates file for your block then the game is gonna complain that there isn't one.
Minecraft itself marks the sign as having a "built-in" model and doesn't even attempt to load it's model as a result.
Why not just create an "empty" blockstates file? That would also allow you to define the breaking particle.
You could also use a custom implementation of a IStateMapper.
Unfortuntely vanilla is pretty bad when it comes to handling exceptional cases. The particle textures for the sign are hardcoded in BlockModelShapes#getTexture. If you want a particle texture yourself then either use an "empty" model or a custom IBakedModel implementation.
That's fine.
Your code is an insane mess though:
Why re you doing (this)? There is no reason to write your code (like that) or {like that}. Don't do that, it is impossible to read and is absolutely not necessarry.
Why do you have a \t symbol between your modifiers and the names? That makes no sense and is difficult to read. Where did you get that coding style anyway? I have never seen anybody space their code like that.
Don't. There is no need to extend BlockContainer, just extend Block and override Block#createTileEntity and Block#hasTileEntity.
This
1) Makes no sense
2) Is reaching across logical sides
3) Will crash on a server
Don't ever do that. Use forge's method(EntityPlayer#openGui) to opeen GUI's.
Don't reference client-only classes in common code, this will crash the server.
Don't reach across logical sides, that WILL break everything possible. And will crash the server.
...Why? It will just return you the said 0. There is no reason to do this. Fix all of these in your code, there are a ton.
This is the prime reason why. Do you yourselves understand what's going on here? All of these casts, valueof and stuff are making it impossible to see what's actually going on.
It also wastes CPU cycles and RAM space doing pointless boxing/unboxing operations.
There is no need to explicitly create a new array here. The input variable is a params one already(... modifier).
Don't abuse SideOnly. Have dedicated client-side only event handlers.
Dear lord, why? Just compare the block you have to the constant you have in the MyModBlocks. Don't ever do stuff like this.
Don't do that, metadata is gone in 1.13 anyway. Just use the blockstate properties.
I am not going to complain about magic numbers in your TESR since you just copied the vanilla sign TESR, but don't use magic numbers in general.