I think the simplest way to deal with this would just be this:

- When an attack misses you it says "Dodged" and shows you dodging, like currently.
- When an attack misses you and you have a shield equipped it says "Blocked" and shows you blocking with your shield.
- When an attack misses and you're wearing heavy armor but no shield it says "Glanced" and shows the attack connecting but glancing off.
- When an attack critically misses it says "Missed" and the attack veers off and hits nothing.

This would make it at least feel like your defensive bonuses are from different things in combat.