Extend ContainerScreen instead. This will solve the E button problem.
PlayerEntity#openContainer assuming your container is the one open on the client side.
Show what you are doing now.
They don't. The only reason to have a PacketBuffer parameter in your constructor is to pass extra data over from the server. I dont think yours needs that.
I'm not at my IDE at the moment so I cant give you definitive answers with code, but I think I can point you in the proper direction, where to look, ect.