Quizá sea una tontería lo que voy a decir y seguro ya lo sabías:
Que abriendo la vista eeprom del MPLAB puedes editar sus valores y grabarlos en el pic.
Seguro no es lo quieres ya que implicaría escribir a mano un valor ID por cada pic, pero por otra parte no sé como un programa puede autogenerarse un ID al azar o incremental sin saber quien es quien. También sería un enigma para el receptor de dichos IDS.
Hombre.. si son cientos de micros es una put***da tener que grabarlos uno a uno. Pero si son solo unos pocos y sin tener posibilidad externa (dips on/off) para crear el ID... pues te diría que no te compliques.
Igualmente creo haber visto por algun lado (microchip si no me equivoco) un integradito de 3 patas que crea un ID unico y lo envía serie a un micro. Voy a mirar si lo encuentro y te paso el link.
PD: Si son ciento de miles o millones ya puedes pensar en pedirle a microchip que te los manden grabados con tu asm y un codigo distinto para cada uno