I figured out the text encoding with some Python hackery. Or at least am partway there, anyway.
Here's the trick, and why WindHex couldn't find it: the text is stored using 16-bit character values. (Makes sense, since this is a game that was originally in Chinese, a language that uses far more than 256 characters!) So there's an extra null byte between each pair of Roman-alphabet letters.
And not only that, but it's still non-UTF16 encoding. 0000=A, 001a=a, and I'm not sure how the rest of the character set goes because it's not the same one I found in the ROM graphics.