There are, as always, multiple ways of doing this. My first idea is to have an instance variable on the player called something like "PowerUp" and the timer behaviour. When the player collides with the wrench set the PowerUp to "_Wrench"(you can do it without the underscore). Start the timer and make it last 10 seconds and put a tag to something like "power_up". Now, for your animations, whenever you player any animation make it so it plays "Idle" & Tails.PowerUp, "Jump" & Tails.PowerUp, and so on. Since the PowerUp variable will be an empty string in the beginning it will play just "Idle", "Jump", etc. When you collect the wrench it will begin playing "IdleWrench", "JumpWrench", etc. You have to remember to make these animations.
The last thing is to add an event On timer and make it so when the timer expires(the "power_up" one), just set the Tails.PowerUp to ""(this is an empty string).
This can also work even better with families, if you want me to further explain how incorporating families will make the code more streamlined and make it so adding new power ups is easy feel free to ask(I don't have time to do so now ).
I assumed that Tails is the player in the later part.