Those are two different arrays of unit data. The first is the main party data, and the second is the unit data used in the formation screen. I actually have a more detailed definition of that data structure in the Data/Table Locations page. (Search for "801c8638 (WORLD.BIN)")
In the case of formation screen unit data offset 0x70, it's copied from party data offset 0x04, so those should have the same value. (This routine is the one that copies the data.)
As for why they sometimes used 2-byte fields when 1-byte fields would suffice, it probably wasn't a conscious decision. They probably used a short data type instead of a char data type in their C source code, or something along those lines.
In the case of formation screen unit data offset 0x70, it's copied from party data offset 0x04, so those should have the same value. (This routine is the one that copies the data.)
As for why they sometimes used 2-byte fields when 1-byte fields would suffice, it probably wasn't a conscious decision. They probably used a short data type instead of a char data type in their C source code, or something along those lines.