siempre puedes usar la User ID Memory, esta se programa tanto por ICSP como por software.
Son 8bytes en la direccion 0x20000 de la memoria. Para acceder a ellos debes hacerlo como una lectura de ROM, y para la escritura como una escritura flash. Creo que activando el bit CFGS se podria escribir, pero no estoy muy seguro, esto es aplicable a los pic18 no se si los 16, 24... funcionan igual.