Прежде всего, почему у вас разные методы обновления для разных потоков? Это кажется грязным и нерастяжимым.
Чтобы сериализовать коллекцию, вам нужно убедиться, что ни один из ваших AlwaysChanging
не изменяется во время сериализации. Исходя из этого, кажется, что единственный способ сделать это - сохранить все свои блокировки до сериализации. Кроме того, вы можете сделать полную копию всей коллекции (скопировать все объекты) и сериализовать ее.
Не зная об остальной части вашего приложения, я бы порекомендовал рассмотреть ReadWriteLock как более тонкое решение блокировки.