I tracked down the loading bug, which turned out to actually be a SAVING bug. Apparently the way that I was formatting the output to the save file (with spaces after every cell) was causing it to add an extra chip color and it apparently loaded it the first chance it got.
After changing the save function around so that I don't have a trailing space at the very end of the file, loading the save file works properly. I'm not quite sure why that was, but if someone would be good enough to tell me, i'd appreciate it.
Ugh, now that i've fixed that I guess it's time to work on the flanking code [sad]. That bit doesn't seem like it'll be very easy.