Я не могу легко обнаружить утечку памяти. С другой стороны, я думаю, что утечка памяти не всегда является причиной сбоя, только если у вас заканчивается память. Во всяком случае, мне кажется, что есть проблема с вашим кодом, который может вызвать сбой:
из результатов,
NSMutableArray *results = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
Вы выбираете объект:
returnObj = tmpObj;
и вернуть его после публикации результатов:
[results release];
...
return returnObj;
Насколько я понимаю, освобождение массива также освободит весь его объект, поэтому вы возвращаете объект, который может быть освобожден в любой момент (или даже просто освобожден).