Bueno, vamos por partes dijo jack, me imagino que no habras porgramado el 18f252 con el hexadecimal que te deje, puede ser que cualquiera se confunda, pues el codigo para un pic18 es distinto al del pic16, lo que resulta de poner un 18f252 es un icd-40, y solo es para usarse con CCS.
El ICD-1 de 3,68 Mhz es compatible hasta la version de MPLAB 5.740, y solo sirve para los micros de la linea 16F87XX nada mas.
El ICDS-20, el que cargarias con el hexadecimal que te pase, es solo para CCS, y sirve para todos los PIC16 y PIC18 que aceptan ICD.
El ICD-2, va con un PIC16F877 o 16F877A, y es solo conpatible con MPLAB desde version 6.0 adelante, lo que sucede es que podes asociar el compilador CCS a MPLAB con un PLUG IN, y hacer el debug en C de CCS desde el entorno MPLAB, lo que no significa que haya compatibilidad entre ellos, si bien el ICD-1 lo desorrollo microchip , ccs sigue usando el mismo hardware y mejoro mucho el soft y ademas soporta un solo ICD todos lo micros, microchip saco el ICD-2 que soporta muchos micros, pero va cambiando de firmware segun la necesidad el soft no es lo mismo y es mas lento, ambos tienen la funcionalidad de ICSP.