Not being aware of the domain problem at hand, here's a stab at the code...
To begin with, do you intend to have only one implementation of IStudentManager and one of IFeeManager? If yes, then implementing a factory pattern seems like overkill to me.
In any case, I've rewritten the code a bit with a factory using generics to simplify it a bit. Also focusing only on the IStudentManager interface... the principle is the same for IFeeManager. Using this kind of factory makes it easier to add new implementations of IStudentManager, since you do not need to change it.
Be aware, thought, that there are multiple ways in which you can implement a factory pattern. This is just one of them.
Hope that helps.
Robert Blixt, Apr 14, 2011