Когда абонент отказывается от подписки, вы меняете содержимое коллекции подписчиков во время перечисления.
Существует несколько способов исправить это, один из которых меняет цикл for, чтобы использовать явный .ToList()
:
public void NotifySubscribers(DataRecord sr)
{
foreach(Subscriber s in subscribers.Values.ToList())
{
^^^^^^^^^
...