I would suggest starting by running the Win32 simulator code on a 64 bit PC. There was a reason why it didn’t work, but I can’t remember what it was right now.
A bit of history:
Originally FreeRTOS used type conventions that I have always used whereby data types were not typedef’ed but instead #defined to avoid using standard data types. Therefore an char was no int8_t, but portCHAR. That allows unsigned char to be “unsigned portCHAR” rather than its own #define. portCHAR, portSHORT and portLONG were defined for each port.
People used to complain about this, but it was not easy to replace the #define definitions with typedef’s because of the number of different compilers that have to be tested with, so the #defines were removed (in fact they still exist for backward compatibility, they are just not used) and replaced with standard C data type. This didn’t matter because on all 33 supported architectures char was 8 bits, long was 32 bits and short was 16 bits. When you move to a 64 bit architecture this is no longer the case as long will be 64 bits - I’m not sure if that matters or not, but suspect it was the problem with running the Win32 code on a 64 bit PC.
All the new FreeRTOS products, UDP, CLI, IO use stdint typedefs. Ideally FreeRTOS would too, but it will cause major problems switching because it will break backward compatibility with peoples existing applications, and cause compiler warnings where libraries are used, and not be easy to get running with all 33 compilers.