I had a PPM client who did this, and requested Support if there was a way to correctly reverse, and sadly required database updates which Support would have to develop, due to the way the client had tried to reverse the transaction.
The client had managed to 'reverse' it correctly from a WIP perspective, but the Actuals on the Task lines remained incorrect. This then limits using the 'Populate from Task Assignment' on the Cost Plan as there are now 'differences' between the 'task actuals' and the 'wip actuals' as it will then push the 'difference' when using the 'Populate from Task Assignment'.
I would be very grateful if someone could provide a step-by-step guide on how to correctly reverse these types of transactions, in particular, when the item has been posted and the error may have not been identified for a couple of days/weeks later.