Sí señor!
Como las 24C04, 24C08, ... son de la mísma familia, y el tamaño del comando de direccionamiento a una posición de memoria debe coincidir(2 bytes, nos da que desde memorias de 1kByte hasta memorias de hasta 64kByte) podría cualquier ser leídas sin problemas.
El tema de que se te repita la información es lógico ya que estás leyendo más allá de la posición máxima implementada en la memoria. La memoria trunca ese valor y se queda sólo con los bits de direccionamiento que tiene mapeado, es por ello que:
Si leemos de una memoria de 8kbit(1kByte) como la 24C08, las posiciones 0x004, 0x404, 0x804, etc. la memoria leerá el mísmo valor, ya que se truncará la dirección y estaremos leyendo en realidad siempre la posición 0x004 de la memoria. Si esto es lo que te está pasando, es que la memoria es de menor tamaño al pensado. Podés achicar el tamaño a adivinar de la memoria entonces, hasta que no veas que sucede el fenómeno de repetición. Claro que bien podríamos estar ante un caso de una memoria que es realmente de, por ejemplo, 2 kByte, y su contenido se ha decidido guardar dos veces exáctamente igual, como si fuese un MBR del sistema FAT de archivos. Pero sería muy raro.
Recomendación: Si la idea es sólo cambiarla, y es sólo una. Cambiala por una que muestre este síntoma de repetición. No debería haber problemas. Sencillamente el software no va a utilizar la parte más alta de memoria y listo. Peor es elegir una memoria que sea menor que la original y perder datos/configuración importante. Eso sí puede hacer que falle el código.
Saludos.