It sounds like you have some eeproms to use, so I would forget about proteus and just use an eeprom and the Arduino. You can write and read from the test eeprom before you try and program the radio eeprom.
Your test eeproms are 128Kbits (16Kbytes). What is the size of the eeprom in the radio? Is the eeprom in the radio addressable with i2c? How did you obtain the "dump file?
ultimately need to write a 16 kiB array to my EEPROM
In your link to the "dump file" you show 720 bytes of data. Is that the data you have? Where does the 16K bytes come in? Is all data after the 720 either 0x00 or 0xFF or is there real data to deal with?
I am asking this because originally whey you talked about an eeprom programmer it was not clear that you had only one eeprom to write, and you were not developing a production tool. With 720 bytes, of actual data you don't need to develop a tool set to deal with large files and use a write procedure which is optimized for speed.
With 720 bytes, you should be able to hand input a 2 dimensional array 45x16 which contains all the data. Writing that data to eeprom and reading it back will be very simple, even without the Christensen library. You should be able to use the Wire library with the wire.write(data,16) and avoid any page boundary issues.