Yup, that's almost definitely the problem. That was literally one of the very first changes I ever made to the source so I could use purify to try to find the 4k .ioftpd corruption issue. At the time I thought the name to address mappings were just for debugging purposes. I didn't realize the resolving procedure address was exported to modules who could use it and then make calls... I do remember searching the sources though
I'll get that fixed for 6.3 as well as a source update then. You have two short term solutions. In the very latest releases (6.2.2+?) I really am using malloc/free/realloc so just ignore the getproc result and use the actual addresses... In fact using 6.2.3 which doesn't trap exceptions and generate the c:\ioftpd.crash.log file might be a nice help during development.
The other option is to just use the released 6.1 sources and remove the #ifdef around the registering of the memory routines. I ended up changing the IoMemory.h file very shortly after commenting those out way back when and there is no need now for those functions to not be exported.