I wonder... If you have access to an 'image' instead of S19 files, can't you just code in your program to treat the image as 'data', then let CW put it in the part? You'd probably have to break up the data for positional reasons, like placing the int vector table, but that shouldn't be hard.
Heck, write a program to walk your S19 file and 'map' it to individual files with known locations and contiguous blocks. (Ok, you could just use one massive block...) Then just write a 'wrapper' in CW to include the blocks as data, program and go.
Mike