Ashman видите в чем дело, вы пытаетесь использовать программу способом, которым не задумывалось, что она будет использоваться, и от этого все проблемы. Всё, что я делаю в программе делает этот способ использования всё менее удобным, так как синхронизация становится всё лучше.
Понимаете в чем дело, архив-то у вас один общий на всех. И по большей части для вас есть польза в синхронизации, так как один из пользователей может улучшать качество разметки, и все остальные получают от этого пользу, и наоборот. Но при этом вы хотите, чтобы данные были как-бы общие, но не общие - часть данных чтобы отличалась у каждого пользователя.
Честно говоря, я вообще не уверен, что подобная задача решаема на концептуальном уровне. Вы либо делаете для каждого пользователя свою независимую песочницу с собственной разметкой (отдельные копии архива, или архив только на чтение), но тогда полностью теряете преимущества совместной работы. Чтобы не совсем уж терять, можно сначала разметить архив полностью, потом сделать копию, удалить в ней лишнее и добавить нужное, но всё равно, копии будут после этого разъединены, и улучшения сделанные одним пользователем к другим попадать не будут.
Либо вы пользуетесь единым пространством, получаете все преимущества этого (совместный труд по улучшению качества разметки), но при этом вынуждены терпеть мелкие неудобства в форме лишних людей в библиотеке.
Мне кажется, что выбор между этими вариантами, другого варианта, как мне кажется, в природе и не может существовать. Вы вообще встречали хоть где-то что-то похожее на то, что в хотите организовать, с частично пересекающимся общим пространством? То, что вам раньше удавалось делать это в моей программе, основывалось на недоделке, которая и была в последствии устранена.