I could swear that there was a thread a page back with somebody having this same issue.
In java everything is passed as a reference(kinda, it's a bit different but I won't complicate stuff). Thus when you get the item stacks from the results of your recipe and blindly put them in the output slot it is still THE SAME ITEM STACK that is stored in your recipe map. Any modifications to it apply to the stack in your recipe.
Also some misc. issues:
Don't use get/setField, that is a silly vanilla mechanic. Simply reference your fields directly.
I have a suspicion that you are doing the stupid invalidate/validate tileentity stuff there. Don't. Simply override TileEntity#shouldRefresh.
Why? You are just wasting a CPU cycle at that point. Doesn't really matter, but still, why?