Yes, you're right.
When the assigned percentage values are written from ROM to RAM, the percentage is erroneously written to the base (or maybe it's multiplier?) Byte, then overwritten by the value that actually belongs there. The percentage value is thus left blank.
As noted above, the only time a monster ever has live defense percentages is when one of the defense indexes changes mid-battle (because that routine works properly).