Если необходимо сохранить значительное количество элементов, лучше всего подойдет архивирование или список, который у вас есть на данный момент.
Одним из преимуществ NSUserDefaults является то, что определенные элементы могут быть доступны и сохранены из любого метода по отдельности. NSUserDefaults также поддерживает несколько необъектных типов.
Обычно, если мне нужно сохранить практически все состояние классов, я использую архивирование.
Нет причин не использовать комбинацию, выбирайте метод сохранения каждого предмета индивидуально.
Как правило, разница в производительности не будет большой.
Для достоверных данных выберите Базовые данные.