I agree with all that's been posted so far. I think you need to step waaay back with Gilbert, kind of start all over. Don't blame it all on his being a Cairn. A friend had one for 14 yrs and she was a total sweetheart - they're terriers, so yes, they've been bred to be independent little things and she def was, but she was still a major part of the family, loved attention, loved being the center of attention, etc. Has he always been trained with positive reinforcement? No judging if not - as lots of us on this forum are cross-over trainers. Is it possible he could have been handled roughly at some point, so that maybe he's not as trusting of people as you'd like? Just throwing out thoughts.
Just from what you've written, I'd suggest stepping way back and starting over. Spend time with him, bond with him like you would with a new dog. Give him time and space, and no rough handling whatsoever. Don't move him. Ask him nicely and respectfully to "off Gilbert" - and pay him well for doing so. And practice, practice, practice. You have to earn dogs' respect, just as you have to earn peoples'. Dogs shouldn't have to respect us just for our mere presence in their world - unlike some tv personalities would have you believe.
Let me ask you this - when Gilbert doesn't listen to you, what do you do? What are you asking him to do when he blows you off? And what are the results? Also, keep in mind, not all dogs do like to be cuddled. I have two German Shepherds. My girl is a real cuddler, and loves her cuddle time each night. My boy, altho he loves people and is very affectionate, is not the cuddler she is at all. He loves his pets and attention, but doesn't like all the hugging, etc. He tolerates it (he puts up with me cuz I think he knows I like it
but sometimes I can see him looking like "oh brother" - and as soon as I release him, he wanders off). Some dogs don't really like it - just as some people are way less affectionate than others. Think about it - dogs don't hug and cuddle each other like people do. Maybe he's just not a cuddler. We have to remember to always accept our dogs just as they are, not try to make them as we'd like them to be.
Kathy Sdao has a book "Plenty In Life Is Free" - she stresses the need to constantly catch our dogs doing things RIGHT. Many years ago, I adopted a GS who had had a less than stellar beginning to life and came with loads of baggage. Our trainer suggested this very approach with her and it worked wonders. Kathy suggests measuring out the dog's kibble each day and using that (or a portion of it) throughout the day - that way you won't end up with a fat dog. Load your pockets with kibble each morning, and all throughout the day, every single time you see Gilbert doing something you like - whether it's laying on his bed, being quiet, looking at you, following you, sitting someplace, being calm, jumping off the couch on his own, etc etc etc ... the list is endless - toss him a piece of kibble from your pocket, no words needed. You're going to become the center of his world. This isn't going to happen over night, this needs to be ongoing. Don't do it for only a day or a week, do it every day. He's your dog forever - so make this an every day thing. She suggests 100 pieces of kibble, and catching them doing something right 100 times during the day - and this is not training sessions, that's different. Let Gilbert know he's doing something right. He sounds like a dog who's not happy - make Gilbert a happy dog and I bet lots of things turn around.
For now, on the couch, instead of eliciting growls from him, or trying to move him, ask him to move, reward him when he does, and if he refuses, what would happen if you leashed him, then "encouraged" him to get off the couch that way (basically guiding him off)? And once off, reward him. Make all his behaviors fun for him, let him know there's something in life for him, besides just you all disagreeing and grumbling at each other. And - once he's off the couch, have a mat or bed that he then can directly go to, nearby (or maybe he has one already).