Any reason not to just re-import priv keys instead of going back to old wallet.dat?
Yes. Most users don't know what commands to run in order to get "all" the wallet addresses.
Your wallet has more addresses than shown in the "receive" tab.
Those are new addresses created for "change", which means the remaining of the coins from a transaction you created.
So, if you don't dump and import private keys of all the addresses, you may end up with missing coins.
I had previously made a new wallet and send coins out of my old wallet because it was hard to tell what was missing in every resync. So it's just a short list on my new wallet, easy to import

Which worked great. But then I tried to send a few over to bittrex:

Any ideas?
Same thing happened to me when I decided to give up on maintaining a local wallet + stake and tried to move everything to Bittrex. I kind of followed what mindfox recommended while back:
1. Run checkwallet in the debug window. Given that the message is about coin mismatch, you are likely to get back a message that some amount of coins is out of sync.
2. Run repairwallet in the same window.
3. Retry transaction. It is possible that the amount you originally tried to transfer might not be available, but it should become available after waiting a little bit. If the original amount was less than 1/2 of the value of your wallet, it is likely that on the next try you will succeed (i.e. will use coins from other inputs in your wallet). If you don't have enough funds, just wait for the coins from the original transaction to be "returned" to your wallet.
4. In case 3 fails again, repeat starting from 1. You will eventually succeed.
By free estimate, I had to do this 8-10 times until I moved the whole content of my wallet. You also might need to close and reopen the wallet as well for the missing amount to appear.
As always, back up your wallet before attempting anything.
Good luck!