Another interesting thing is that I have to make the UpVector (0,-1,0) to make the points in the positive Y be drawn above the origin.Any ideas? It seems that when I modify the Z, the points move in very weird directions. Thanks.

It's because in the screen space the Y increasing downwards, the origin is at the top-left corner, it's easier if you just flip it when projecting.In the very old days I used this simple formula:

With weird corners behind the screen, you will not get away without cliping. If you draw wireframe, it's enough to cut the edges at a certain distance, but if you draw filled/txtured polygons you'll need to do some extra work. Depending on how many vertices go behind the screen plane you'll get one or two polygons.