Going back to the unique ID per board, I think there's an easier solution instead of using a serial number, why not have a set of say 8 jumpers or dip switches on the boards, so we can configure our own unique IDs with those, that'll give you 256 different board ids, assuming the PIC can read the jumpers.