Вы можете заключить CGMutablePathRef в NSValue и сохранить его в массиве.Затем при необходимости разверните его:
//Wrap
NSValue *pathValue = [NSValue valueWithPointer: path];
[array addObject:pathValue];
//Unwrap
NSValue *pathValue = [array objectAtIndex: index];
CGMutablePathRef path = [pathValue pointerValue];
Обратите внимание, что метод valueWithPointer:
не влияет на количество сохраняемых объектов, поэтому вы не должны освобождать свой путь при добавлении в массив (освобождайте его позже, когда он больше не нужен)