It's a longshot that this is what's going on with yours, but I had a similar issue. When I entered my wife's information into Turbotax, it had us getting a decent federal refund, but then owing NJ an amount that simply didn't make sense. We have never owed NJ anything, so I questioned it, especially because it had us owing several thousand to NJ.
Turns out that her payroll company (we'll call them Paychex), fucked up the W2's. One of the items, "FLI," was put into box 15 of the W2. So, I put it into box 15 in Turbotax, because why wouldn't I? This was the thing that caused the swing.
So, I googled it, and it turns out that FLI needs to go into box 14, not 15. Once I fixed that, it swung back to us getting a modest state refund. I told my wife to alert all of her coworkers (and her manager) to the fact that the W2s are wrong, because others might put it into the box that it says to, and not question it.
Moral of the story: Might not be your issue, but make sure that all of those "extras" (FLI, WC, etc.), are where they're supposed to be on the W2.