It looks to me that you have the ability to remove MyItemizedOverlay objects from your MyItemizedOverlay class.
There's a discrepancy here though, but not necessarily an error. You add objects to your list of type OverlayItem, but you remove items that are of type MyItemizedOverlay. I don't know what BaloonItemizedOverlay is either, but given that its generic it would indicate that its a collection of OverlayItem instead of being OverlayItem (although that may also not be the case especially with a chain of command style pattern so it may simply be a decorated type).
Needless to say, I think a lot of the weight falls to the method populate() in the BalloonItemizedOverlay method, which appears to be called on any changes occurring. Guessing it would likely take care of the drawing itself. If that assumption is correct then once you can get the removeOverlay to work (assuming it doesn't with its current signature), then it may be as simple as changing the datatype there.
I'm not sure how many mobile developers are on these forums at all. You may need to go to android's forums for the use of these types of classes.