What I believe happens;
- BillboardSet is first initialised and '_createBuffers' is called which then calls 'setDatablock' or 'setMaterialName'
- 'setMaterialName' eventually calls 'setDatablock' which clears the mMaterialName
- BillboardSet pool is resized and '_createBuffers' is called for a second time
- mMaterialName is now empty and the default HLMS datablock is used instead
This appears to be a logical bug, but I am unsure what the best solution would be. Maybe finding the current active datablock in '_createBuffers', or not clearing the mMaterialName in 'setDatablock'?