however, when i get to the call to increment the iterator, i get a debug assertion telling me that multimap iterators are not incrementable, though clearly in this example it shows it to be
That's because you erase while iterating. Due to that, it2 may point to end() and when you increment end() iterator, you get that error.
If I recall correctly, the solution is
1 2 3 4
for(something::iterator it = begin; it != end; ){
if(condition) it = container.erase(it);
else it++;
}