You have the hand the player clicks your block with as an argument. That argument is called hand.
Do not reinvent the wheel. That method already exists at TileEntityFurnace and it is public and static.
Offhand - 40. Mainhand - player.inventory.currentItem.
=>
playerIn.getHeldItem(hand).shrink(1);
As for your issue itself try debugging it. Set some breakpoints up, see which method fails the checks, try figuring out why.
Edit: Okay, just want to clarify something as my response may seem weird at the point of me talking about the hand argument as you clearly see it existing. To clarify - the issue here is me failing to see any reason as to why are you ignoring the offhand completely and only do things for the main hand.
I also tested your code with hand and method references corrected and I do not have the issue.