If your using the coords the renderTileEntityAt is called with, it won't work. those values refer to the rendering position of the block and is different from its world position.
You need to use the tile entity that renderTileEntityAt is called with.
Have you overridden getDescriptionPacket and onDataPacket? You need to do this to properly access the values during rendering, even on single player.
Assuming you TileEntity has nbt saving properly implemented you can use
public Packet getDescriptionPacket()
{
NBTTagCompound tag = new NBTTagCompound();
this.writeToNBT(tag);
return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 1, tag);
}
public void onDataPacket(INetworkManager net, Packet132TileEntityData packet)
{
NBTTagCompound tag = packet.customParam1; // get tag
this.readFromNBT(tag);
}
in you TileEntity class