You are using 3D models.
That means your subscene needs a deapthBuffer not your primary scene. Thats why it works on the primary scene.
Change
SubScene subScene = new SubScene (sub, 800, 600);
to
SubScene subScene = new SubScene(sub, 800, 600,true, SceneAntialiasing.DISABLED);
(SceneAntialiasing.DISABLED or SceneAntialiasing.BALANCED)