試しに、
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(FLOAT*)&m_Pointsize);
と、やってみましたが、だめでした。

また、ヘルプに
「Direct3DDevice9::SetRenderState メソッドは DWORD 値を使うため、
次のコードに示すように、アプリケーションでは値を格納した変数を
キャストしなければならない。
pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&PointSize));」
と書いてるので、ここが原因ではないと思います。