Ok, ignore this entire thread, I was right, I'm just being stupid because I'm tired. The pointers don't actually show in the NSMutableArray debug information, they are all referenced as 0x0 but they are in fact there as I can pull information from them no problem, it's just that I was pulling information out and putting it into another array so all I saw was errors without testing the real output.
I don't know if this is a bug in xCode that it's not displaying correctly or something I've done that's sending it a bit loopy, but it's rather annoying that it doesn't show the pointers correctly.