BTW block properties don't work like that; each block still has a blockstate for every possible combination of the properties that you attach to it, it just assigns a unique integer to each blockstate combination behind the scenes.
So for example - a block with a FACING (four directions), a POWERED (on or off), and a SPEED (slow, medium, fast, ludicrous) would have 4*2*4 = 32 different combinations. If you tried to store a BlockPos it would try to make X * Y * Z combinations i.e. 2^32 * 256 * 2^32.
But you could for sure make each space on the chess board into a chess piece using blockstates (no tileentities) and have the master control the blockstate at each chess board location. If you don't need animated figures then that's quite a bit simpler than using TileEntity and TileEntityRenderer