Линия
people = [NSMutableArray array];
возвращает автоматически освобожденный массив, который будет освобожден на следующей итерации текущего цикла выполнения. Вы должны сохранить это:
people = [[NSMutableArray array] retain];
и, конечно, отпустите его в методе dealloc.
Тем не менее: Инженеры Apple часто упоминали на конференциях, чтобы избежать подобных случаев, когда это происходит в iPhone, по возможности, из соображений производительности. Попробуйте вместо этого использовать alloc / init:
people = [[NSMutableArray alloc] initWithCapacity:1];
с соответствующим выпуском в методе dealloc. В этом случае вам даже не нужно сохранять (init возвращает экземпляр с счетом сохранения 1, который вам нужен).
И комментарий Джастина верен: вы должны сделать это вместо этого:
Person *person = [people objectAtIndex:indexPath.row];
cell.textLabel.text = person.personName;
и это должно сработать.