Thanks! I love breeds in the class. If in the right environment, they make great pets (Lucy is awesome with my son).
Somewhere along the line (and I know others have said this a few times already) the dog got the idea that you aren't ahead in the pecking order. It's harder to undue poor training/habits than it is to build good ones. If it's gotten better at all, you are likely on the right track.
To me, it sounds like you are doing things right in order to maintain a level of dominance, but the trouble is you have to get to that point of maintenance first. It sounds as you are in more of a building phase (which, as I said, takes more time if you are also "undoing").
What may be cheaper than calling someone in to help and still effective (sometimes more-so) is taking your dog to an obedience or agility class, where it puts the dog in a regulated setting where you are clearly in command. You will still get the assistance (in essence, you are the one being trained) and the dog will get all direct correction from you.
Also, you can (and should) continue on your own. Dogs actually like the structure that comes with training...if you make it fun. You can get a simple training collar and work on simple commands on-leash (like sit, stay, heel, down, etc) even if he knows them to build that rapport. Treat every interaction as a chance to further training.
With all that said, it can definitely be time consuming. It requires a ton of patience and most importantly, consistency. I'm sure you've heard plenty, so if I'm being repetitive, my apologies...I didn't go back to the beginning.