You need to have a TileEntity constructor without any arguments (and calling super()), as that's used for instantiating a TileEntity when the world's getting loaded.
My advice: don't use custom TileEntity constructors. Instead, use setters as it removes any confusion with constructors.