[EDIT: the URL in original post is no longer available. I have changed it to point to a link in the Internet Archive ]
Sam, I ran into this tonight too and found that the EEPROM IAP routine works when the buffer address is in main RAM (0x10000000 and up) but not in the smaller RAM blocks (0x20000000 and 0x20004000), which is where I had my data buffer. So, using a buffer on the stack solved the problem for me. YMMV.
By the way, for people landing here through search engines, there is an article about the speed of the on-chip EEPROM and interrupts here: https://web.archive.org/web/20131016034605/https://www.lpcware.com/content/blog/lpc1100lpc1300-eepro...
The built-in IAP routine disables interrupts for potentially many msec during large writes. The alternative library that NXP provides doesn't disable interrupts.
[EDIT: I'm not finding the library available for download anywhere anymore. Anyone know where it is?]