Yeah, ecore_cocoa does a bit of weird things, ecore_cocoa uses the function evas_textblock_text_markup_to_utf8. It should not.
In general: A type like MARKUP should stop at the level of elm, or ecore_evas ... but should never be used in ecore_cocoa.
I don't know if this will help, but ecore_cocoa_clipboard_set() (that calls evas_textblock_text_markup_to_utf8) is beta API (the whole cocoa clipboard API is). It was (badly) designed to be used by Elementary only. Maybe the caller of this function can run the evas_textblock_text_markup_to_utf8() first, and pass its output as the data parameter?