BINGO! It works!

What a relief...
I can see in the VS debugger that Orbiter.exe loaded zlib from
C:\Windows\SysWOW64\Zlib.dll which is version 1.01.2.0 on my machine, from 1998. So I guess that version has some compatibility issues.
(In
one of my previous posts, I said that the stack pointer shifts 16 bytes up after zlib's
uncompress function returns, corrupting the return address to
ReadData. Now that the proper
zlib.dll is loaded, that shift doesn't happen. Also, the reason I didn't see a difference when changing the
zlib version is because Windows was not even loading those versions

)
For what it's worth, the latest version of
zlib, v1.3.1, also seems to work on my machine. But I'll leave it to the rest of the development team to properly test that.
Thank you
@francisdrake 