Вы правы, надо было почитать сначала про PartialRefresh.
Map:
Refresh layer pActiveView.PartialRefresh esriViewGeography, pLayer, Nothing
Refresh all layers pActiveView.PartialRefresh esriViewGeography, Nothing, Nothing
Refresh selection pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
Refresh labels pActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing
PageLayout:
Refresh element pActiveView.PartialRefresh esriViewGraphics, pElement, Nothing
Refresh all elements pActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing
Refresh selection pActiveView.PartialRefresh esriViewGraphicSelection, Nothing, Nothing
Почитал, делаю как в описании:
MapControl.ActiveView.PartialRefresh(esriViewGeography,MapControl.Layer[0],nil);
всё-равно перерисовываются все слои
Я так понял, что надо ещё выполнить Ваш пункт 2, но как это сделать, не понял, а в описании этого нет