I have a dog who had to be pinned. He learned *very* quickly what behavior got him there, and very quickly stopped it. I would just put him on his side until he relaxed, then he could get back up. Dogs don't like to be nagged, they need their rules and limits set very clearly. In this case, he was picking on another dog pretty hard core, I had blood a couple of times.
Nothing In Life Is Free is a good program to start with. It will give you the beginnings of structure. I would crate this girl every time you leave the house. Again, structure. Obedience classes never hurt.
So here is a maybe silly question, but I see it a lot. When you want her off the sofa, is the word "down" or "off"? When you want her to lay on her belly on the floor, is the word "down?" Is it possible she is confused? I teach "move your butt" to get them off the furniture, and "lie down" for laying on the floor. Sometimes if there are multiple people in the house, they all use different commands and the dog is like "what?"
I would say just don't take her crap. She is the equivalent of a teenager who is testing your limits. The more she gets away with, the more she will challenge, just like teenage humans.

When you tell her "off" and she doesn't, grab her little collar and help her. Don't give her a second command, and don't let her get away with it.