One major problem with older cards (especially MX based Nvidia) is the horrible fillrate. When you changed resolutions you saw an increase in performance because the frame buffer size decreased. Less pixels to move on a fillrate bound card is a good thing. Stencil shadows are very fillrate intensive, which you saw affects your performance. If you have lots of transparent sprites or particle systems with massive overdraw, you will see a big hit on fillrate. Your card is most likely fillrate bound and not geometry bound based on the tests you have run. Believe it or not, you may be able to boost your performance by increasing the number of triangles. Large triangles take a bigger hit on fill rate than smaller triangles. If you have say 2 very large triangles that make up one wall and which fill a large portion of the view in one area, you could split them into maybe 10 smaller triangles and actually increase your performance. Obviously, there is a balance. If you split into to too many tris you will eventually become geometry bound. I am new to 3DGS, so I am not 100% sure on the way you could easily do this with the engine if you are building your geometry with blocks in WED.
The "locked numbers" on your frame rate are explained by the fact that your frame rate is locked with the refresh rate on your monitor (vsync). Let's say your refresh rate is 60Hz and your card is filling the frame buffer 61 times per second (fps). Although it was early, the card will have to stall until the monitor is ready. So it effectly caps your FPS to 60. If you add more processing for the card to perform, and this causes it to only be able to update 59 times per second, the card will miss every other time the monitor is ready to refresh. This will cause it to have to stall until the *next* update, and drop your FPS to 30. Turn off vsync to see the true rate at which your game is updating.
I also want to warn you about using frames per second as a number to profile your performance (although it is an important number). What you really want to know is how much time (in ms usually) you are spending in a single frame. There is a really good article that discusses the pitfalls of using FPS to profile:
Article
Just wanted to give a heads up on that!