Sounds like hard work bensmumma. I think the weekend away is a really good idea.
Other than that, I think at this stage you need to:
number 1 and above all, keep calm. You getting cross will not achieve anything at all, usually it just escalates the issue. You can give her a consequence for being naughty without being cross - being stern is enough IMO.
Always look at and think about the WAY you are talking to her - if she's always saying no, ask in a different way so it's much harder to say no. If it's something you really need done as in getting dressed, shoes on, don't ask in a 'straight' way as you would a much older child...make it part of her play or make it a race or challenge etc.
If she won't walk properly, then put her on reins. If she knows she either walks with you or has the reins on, she may choose to walk properly. And don't give in to histrionics/throwing self down on pavement if you can help it. Distract her, or I'm not above a bit of bribery - "Oh it's a shame you can't walk with your reins as I was going to get you an ice cream if you walked with me to the shop"...
Headbutting I think needs an immediate consequence; for me with DS anything physical like that wuold have meant a minute or two time out in his room - I think it gives the strong message that you don't want their company when they do this.
And don't fall into the trap of thinking that if they're not crying and repentent at this or another consequence, that it's not working. It is, IME - it's human nature to try to fight back by not seeming bothered. But I think you need to remain consistent and not be panicked into trying lots of different punishments.
Sorry to go on - I think my main point is keep calm!