При сохранении в pList вы должны попытаться сделать это следующим образом.
[totalCategory writeToFile:path atomically:YES];
это пример того, как это работает нормально
+ (void) saveParams:(int)kotuc one:(NSNumber*)one two:(NSNumber*)two three:(NSNumber*)three four:(NSNumber*)four five:(NSNumber*)five six:(NSNumber*)six seven:(NSNumber*)seven eight:(NSArray*)eight{
NSString *path = [self getNSPath];
NSDictionary* dw = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
NSArray *keys = [[NSArray arrayWithObjects:@"one", @"two", @"three", @"four", @"five", @"six",@"seven", @"eight",nil] retain];
NSArray *objects = [[NSArray arrayWithObjects:one, two, three, four, five, six, seven, eight, nil] retain];
NSMutableDictionary *subDict = [[NSMutableDictionary alloc] initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys];
////save old
[dict setDictionary:dw];
////save new
[dict setObject:subDict forKey:[NSString stringWithFormat:@"%i", kotuc]]; //
//write to file
[dict writeToFile:path atomically:YES];
[dw release];
[dict release];
[subDict release];
[keys release];
[objects release];
}