Раствор 1
Ссылка на B указана где-либо еще в вашем приложении?
Если B доступен только через A, то B и C будут "удалены", когда A "удален".
Раствор 2
Вы должны отправить сигнал B, когда A "удален". Если B известен A, вы можете подать сигнал B от A. Я бы использовал шаблон IDisposable для этого
Решение 3
Вместо прямой ссылки на C из B, вы можете использовать WeakReference из B, чтобы добраться до C.