(You can pass null as a facing, by the way. That's what @Nullable means. null is typically used to represent an "internal" or "self" access.)   Did you ever have the inventory size as being only 1? Because if you did, and you saved that world, and you're reloading that world, the deserialization process is reading an inventory of size 1 and overriding your new with size 5.