It looks like you haven't set up depth testing properly. That would explain why it looks correct from some angles and not from others since it would be dependent on the draw order of the triangles as to which appeared on top.
Have you created a depth buffer, set it, cleared it and set a DepthStencilState to match?