была у меня такая проблема, когда выделено много объектов, то при обращении к полям получал нулевые значения хотя данные там были, точно не помню но кажется написал вот такую функцию возвращающую объекты по слою выделенные на карте
Public Function funGetSelectedFeatureCursorOfFeatureLayer(pIMap As IMap, pIFeatureLayer As IFeatureLayer) As IFeatureCursor
If pIFeatureLayer Is Nothing Then
Exit Function
End If
Dim pFeatureSelection As IFeatureSelection
Dim pSelectionSet As ISelectionSet
Set pFeatureSelection = pIFeatureLayer 'QI
Set pSelectionSet = pFeatureSelection.SelectionSet
pSelectionSet.Search Nothing, False, funGetSelectedFeatureCursorOfFeatureLayer
End Function