I am by far no expert on the matter, so consider this a suggestion from one newb to another.
I think what you would want to do for the MapObject is to make that an Interface, rather than a class and have your monsters, items, whatever implement the IMapObject interface.
The interface would define the methods (such as Draw and Update) and properties (position, active state, etc) that any class MUST have to interact with the map. Make your List of type IMapObject and add the classes that implement the interface to it.
A lot of code I've looked at also shows a seperate list for each class of object on the map, which you may have to do if there's not enough "common ground" between objects to make an interface with.