Не знаю, актуально ли это, но вот быстрый и грязный подход:
property.Value = new string[] {"sharepoint; stackoverflow; scotch"};
Работает как шарм! Очищает предыдущее значение и заменяет ваш строковый массив.
Хотя есть ограничения / преимущества:
Таким образом, он не пропускает дубликаты. Если вы, следовательно, будете использовать метод Add для «Value1», «Value2», «Value1». Результатом сохранения будет «Value1; Value2».
С новым подходом string [] это спасло бы все три из них (мне действительно нужно было такое поведение).