Explanation of how it works ;
The moves Counter and Mirror Coat both deal damage when hit by a certain type of move, physical or special respectively. However, when an opposing player uses the move Substitute, to summon a dummy, you cannot kill this dummy by using either of the moves. Neither move will translate any damage to the substitute, causing it to always be alive unless broken by a naturally damage dealing move. This bug is encountered regardless of if you 1 shot the substitute or multi-hit kill the substitute. It will state it "breaks" or is damaged every turn until it is broken by a natural move.
tl;dr >> Substitute cannot be broken by Counter or Mirror coat, however it can be partially damaged ( I believe )
To reproduce ;
1. Give yourself a pokemon with Substitute and a physical/special move(make sure this move wont 1 shot the counter/mirror coat user)
2. Give another player or npc a pokemon with the move counter/mirror coat depending on your choice of move
3. Enter a battle and use substitute
4. Have the other player use their counter move to get past the first turn (npc will do it if it is the only move)
5. Select your physical/special move and watch as the return damage from the counter/mirror coat cannot break your substitute
6. Repeat this process and it will continue to say it broke the substitute but has not.
Optional 7. If using another player to test, tell the other player to use a normally damaging move, or swap out to a pokemon who can.
Optional 8. When using this move, it will hit the substitute as well and actually break it if it deals enough damage.