Parthac.
First off, lets not poo poo on the 670 too much now. Thats a pretty darn good score. So, first and most importantly, congrats. (I know you don't agree, you will come around on this when you cool off).
Now, since you are like me, and can't settle for less than excellent, lets talk about next steps.
Actually.... your story is exactly my story. Scored consistently high in the practice, scored signficantly worse in the real thing. In that post above I lay out how I fixed my mistakes. It's a long post but I think it will help you.
You can read the story here.
https://www.gmatclub.com/phpbb/viewtopic.php?t=30030
As you will see, I did the same thing. Was scoring 720's, scored 640 on the real deal. Like you, I did worse on my real exam (in math though) than I had EVER DONE before. In other words, I did better on my first practice exam ever than I did on my real exam - before I had even studied!!
Read through my post and see if it hits any chords with you. Maybe you did some of what I did? Focused on the wrong things? Was overconfident? Did so many "hard" problems you forgot how to get past the medium ones?
I suggest a retake in 5 weeks, not 4. This gives you 1 week to decompress.
But remember, you got a 670. That's a good score and the GMAT is only one piece of your application.