I don't see what the issue is with NullLoader. NullLoader does what its name says, it loads nothing. It's a do-nothing dummy object with an empty operator() that can be inserted to FileManager's queue without making it crash. As a side effect, it also allows you to pass a file name and a byte buffer (pointer+size) to a callback function which is normally called after a file was loaded, so you don't have to implement the same function twice.
Yes, NullLoader's buffer member (inherited from LoaderBase) is a char*. That's what it should be. A loader does what it name says, it shuffles bytes from disk or some other medium (null, in this case) to some byte buffer. It does not know whether these bytes can be interpreted as unicode characters or not, and that's not its task either.
No, NullLoader (or LoaderBase for that matter) should not have a wxChar* buffer.
I haven't really looked in-depth what this is about, since it's code completion which I stay away from as far as I can, but here is an uneducated guess.
The first line in that snippet if(reuseEditors) looks like text that's in an editor is being sent to some other function (presumably one that parses the text). NullLoader doesn't care what the data is. The sending and the receiving end have to make sure that they talk about the same thing.
So, since you're saying that the data isn't read correctly, the probable reason is unicode text being copied from the editor and multibyte expected in the parser, or something similar.