Figured out the issue. It was a combination of late night programming and file size issues. I was allocating memory for resource structs based on the information coming from file, which was (obviously, in hindsight) wrong, since it was built using another platform.
Oh boy.


Edit: Aaand hacked something together. Simple type mistake cost me a couple of hours though.

Edit 2: Somehow the pictures are not being displayed. I can see them being loaded by comparing the hex headers with SLADE, but somehow they are not drawn...

Published my fork at this address:
https://github.com/emrecelikten/AmuletsArmorEdit 3: Got it somewhat working. Keyboard doesn't really work at the moment. Mouse is barely working.
It was caused by (presumably) very old GNU C compiler-specific setting in the code where an array was initialized with one element instead of being empty, causing some memory addresses to shift by one. Therefore, if a picture was 320x200, it would become 0x320, which means no picture. GCC was silently passing that flag into the compilation.

Now character creation fails with memory corruption errors again. I think I have found the cause:
https://github.com/ExiguusEntertainment/AmuletsArmor/blob/master/Source/OBJTYPE.C#L1073This puts a 8-byte pointer to the sixth byte of a 10 byte record, overwriting the next record. Might have to rewrite sections of this, but not sure if I will see this problem in other places. There must be a way for a general solution for this kind of issues.