После еще нескольких копаний вот что я нашел. ObservableCollection не регистрируется автоматически с событием INotifyPropertyChanged моего DiceViewModel. Поэтому любые изменения свойств не обрабатываются.
Однако, есть способ сделать это в файле xaml:
Я добавил это определение пространства имен в свой элемент Window.
xmlns:vm="clr-namespace:Rolling.ViewModel"
Затем я изменил свой ListBox для использования DataTemplate с указанным DataType:
<ListBox ItemsSource="{Binding Path=AllDice}">
<ListBox.Resources>
<DataTemplate DataType="{x:Type vm:DiceViewModel}">
<TextBlock Text="{Binding Path=Value}"/>
</DataTemplate>
</ListBox.Resources>
</ListBox>
С указанным DataType ObservableCollection может зарегистрировать себя в элементах моей коллекции, получить их события, а затем запустить собственное событие CollectionChanged.
Надеюсь, это поможет другим людям с этой плохо документированной функцией.