была у меня такая проблема, когда выделено много объектов, то при обращении к полям получал нулевые значения хотя данные там были, точно не помню но кажется написал вот такую функцию возвращающую объекты по слою выделенные на карте
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