The error is, that although the values are of integer type, they only have the length of 2, being an unsigned short in C. Thus, you have to read them as
struct.unpack('>H',buff[0x5B:0x5B+2])[0])
and so on. signed or unsigned does not seem to make a difference here. If available, check the documentation of the save file, it should be denoted there which is appropriate. If not, good luck trying (itertools
can be helpful).
For more details of types, check the table on the Python documentation for structs
As a big fan of Fallout 1 and 2 I do wish you good luck and lots of success with the project (-;