I have read your post multiple times, and am still trying to make complete sense of it, in terms of what you're trying to accomplish. I think that you are approaching the problem in the wrong way, and my instincts tell me that you're trying to fabricate input data for what you see encapsulated in the PDF in terms of data structures. The specifying of null (0x00) bytes in the input data is what is leading me to this conclusion.
Keep in mind that the sole purpose of the Identity-H encoding (which is also instantiated as a CMap resource) is to map GIDs to their hexadecimal equivalent, which can look a lot like a 16-bit Unicode value because a GID is represented using 16 bits. The ToUnicode object can be an entirely different beast, because it maps GIDs to genuine Unicode values.