The fix is to start a game with each of the affected heroes, as that refreshes the Armoury data. Obviously not ideal and we have no idea what screwed up the data in the first place. Also, whilst it’s resolvable by the end user, it would be better if Blizzard just forced a refresh of the data instead of relying on players fixing this individually and fixed the underlying cause of the corrupted data.
Starting games with affected characters does indeed fix the issue. But as you stated, it should not happen in the first place and just goes to show a certain laziness on the company‘s side.