Not sure what I've done wrong...

Arduino booleans are bytes. If you packed those into bits the arrays would take 1/8th as much space.