The current selection mechanism in BocList, especially when using multi-select, does easily break when the list itself or the contained values change, because it is based on row-indexes.
If the BocList's elements are at least derived from IBusinessObjectWithIdentitiy, the selection could be remembered using UniqueIdentifier. This way it would be immune against list elements being rearranged in order, filtered out, deleted or inserted.
This would also allow for selections spanning more than the currently displayed page of list-items. -> see for multi-page selection support