I have a 128MB 6800GT which I am running in a 2.8GHz Pentium 4.
I get 5 to 8 frames per second while looking at anything effected by the light. Looking away from the light but still with in the bounds of the floor I get 20fps max.
I realise my computer isn't the best; but I can run high graphics games like Oblivion with no problems.
I suspect you are using to much CPU time.
Code wise (as in code to use your engine) I think you are on the right track, but it is still a little verbose... for example: why do you make the user pass through a content manager and a service provider everytime they create a model? Why not let them set it once and change it when, in the unlikely event, it changes.
Sorry if this email is overly critical; I don't mean it to be. I think you are doing a good job, but without honest feedback you won't know what needs fixing. Take my advice or not, no skin of my back. . . but I hope you do, because your engine does have potential.