The move Copycat works by repeating the last move used in battle (basically like Mirror Move). Essentials stores the last move used in battle in a single variable that gets overwritten every time a move is made (if I'm understanding it correctly). The issue is that if Copycat is used twice in a row, it will cause an endless loop.
Basically the code for Copycat checks whatever the last move is. If the move is not listed in a blacklist array in the code for Copycat, and there is a last move used, the move executes the effect of the last move used.
The problem is that Copycat and Mirror Move are not listed in Copycat's blacklist, thus it's possible to initiate an infinite loop by using two of these moves in a row. Copycat will see that Copycat was the last move and will try to initiate the effect of Copycat, which will see that Copycat was the last move and will try to initiate the effect of Copycat, etc. in an infinite recursion.
To solve this, I added the function codes of Copycat and Mirror Move to Copycat's blacklist array. If you want to solve this for yourself, go into the script section PokeBattle_MoveEffects down to the class PokeBattle_Move_0AF (around line 4534), and change the blacklist array from