Suppose I'm mining a block, and I still don't find the nonce. Suddenly I receive the mined block from another node. But when I try to validate it, I find it's not right. So I discard it. What happens next? I use the same transactions I start mining before, and I continue mining looking for nonces greater than the last I tried? Or, instead, I start all the process again?
If you see an invalid block you just ignore it and go back to doing whatever you'd be doing if you'd never seen it. Use the transactions you were previously using, and the next nonce you were scheduled to try.
The only exception is that if there are valid transactions in the invalid block that you hadn't previously seen, you may want to add them to your pending list, as you would have if they'd been propagated to you normally.