You should be able to use the elf file together with OpenOCD to program the device. However if you want to use PSoC Programmer, there's a nasty 'Metadata' block needed to inform the programmer about information such as data integrity, Silicon ID etc. There's also a 4-byte field which prevents to use non PSoC-Creator generated hex files. Cypress refers this as 'internal use'.
I've reverse engineered the Metadata field and I created a tool to add this Metadata to just any HEX file.
I am setting up a Visual Studio project for PSoC6 and it seems we could both help each other in working specific things out.
Please PM me if you want to work on this together.