Проблема не в NSMutableArray или в том, как вы вызываете NSKeyedArchiver. Проблема в том, что объекты внутри массива сами по себе не архивируются.
Вам нужны ваши объекты для реализации протокола NSCoding. Существует множество документации о том, как это сделать, но в основном вы просто добавляете метод initWithCoder:
для создания объекта из архива и метод encodeWithCoder:
для записи объекта в архив. Кусок торта!