I hit the same problem as OP. I found the problem by comparing the binary read off the device programmed using the USB MSC with the one programmed via LPC-LINK.
The issue is that when you use LPCXpresso to generate the binary file (I used right click on .axf file->Binary Utilities->Create Binary) it creates a .bin file with a signature of zero. It would be a nice feature if you could choose to add the signature to the binary at this step. The linker script instructions are good though, thanks!