It's time to have an out-of-game discussion with your players.
This is not an issue that can be resolved with DMing styles, rules adjustments, or anything of the like. This is, in truth, an interpersonal issue--and needs to be handled as such.
So, you need to get the party together when you aren't playing the game and address a few things.
They seem to think D&D is adversarial in nature
Your players seem to have this idea that the DM is the Enemy, and they are trying to Beat the DM. This is not the case of any sane D&D game...if the DM is your enemy, he is going to win. Every single time. Rocks Fall, Everyone Dies. Game Over. DM Wins.
As you appear to know, this is not the case. You are not their enemy, you are working with them to create an engaging and challenging adventure.
Be Frank about your prep time and improv capabilities.
Yes, there are DMs out there who can improvise anything at the drop of a hat. Who can weave together a consistent, believable, awesome story out of thin air. 99.99% of us can't do that. A 'good' DM usually has significant ability to improvise, bending their story and plotline around their players' actions. But if the players just surge ahead of everything, break your entire plot, and move beyond anything you are even remotely prepared for? Most DMs hit that point and, at best, end up having to call for a break so they can go figure out what to do.
So, be honest with your players. Let them know that you have a life and a job, too...and only have so much time to prepare for the campaign. It's one thing if they just happen to do something totally unexpected, but if they are intentionally trying to shred all your hard work on a regular basis...well, you're going to have to cut sessions short.
While railroading is not often viewed as a positive thing, there is an implicit social contract that should be followed whenever you're playing D&D...and it's simple: "Play Along." The DM is trying to take you through a story of some sort, so if you just merrily, intentionally skip past all of their plot hooks...you're going to exhaust your DM and burn out their entire stock of plans.
Discuss why you say no.
We can tell that you aren't being arbitrary about this, but your players may not see it that way.
For example: Why don't you want to give your players a pair of Iron Golems? Well, because at your level--a single Iron Golem is stronger than the entire party. Two of them, by themselves, could kill nearly anything I would normally throw at you. So, to challenge you, I have to seriously amp up the difficulty of combat encounters, and that means you guys end up fighting things that will annihilate you if they hit you, not the golems. I don't want to make things so ridiculously easy that you guys are never challenged, and I don't want to make things ridiculously lethal to compensate for the fact that you have a pair of CR 16 golems escorting you.
As an addition to that...
Talk about why the rules are being used in the first place.
The rules of D&D and, indeed, any tabletop RPG exist to create a balanced field where things work in particular ways and make sense. They exist to create limits, which create challenges. If your players are just interested in having unlimited power fantasies with a narrator, why are they playing D&D? If they aren't interested in the game having rules that constrain things to create such challenges, it would make far more sense for them to play a free-form Pure Roleplaying RPG like you could find on many a post-by-post roleplaying forum.
Discuss the role of the DM
The standard rule of almost all roleplaying games is commonly known as Rule Zero (named after an actual rule in D&D 3E). The rule is simply that the DM's call is final.
The purpose of this rule is to keep gameplay going.
If you have often seen children playing a make-believe game, you have likely seen their games disintegrate into an argument over how the game is supposed to work and why the game works the way each child wants the game to work. And then they end up spending more time arguing than they do actually having any fun.
The DM is granted the power of Rule Zero in order to prevent this from happening. In order to keep the game moving, in order to keep everyone else from getting stuck at the table listening to two people arguing over some minutiae of how they think a rule ought to be interpreted (and thus meaning that everyone except the two arguing people are bored and not having fun), the DM is given final adjudicative authority.
Appeal to friendship
Presumably, these people are your friends. Make it clear to them that while you enjoy hanging out with them and spending time doing stuff with them, they are making D&D Not Fun for you. The point of a game is for everyone (including the DM) to have fun together, and their regular "beat up on the DM" sessions are making you miserable. You don't want to end the game, because you like them and want to hang out with them...but you aren't having fun while they keep acting like this.
Establish a system for handling future disagreements.
Once you have this hashed out, there are still going to be cases where they disagree with you. So, how do you approach it? A few options.
- Let the rulebooks do the disagreeing for you. When a player wants to do something that breaks the rules, ask them to look the relevant rules (/spell/magic item/whatever) up in the rulebook and then read them. If they keep trying to contest, just point at the sourcebook and shrug. "Them's the rules." Hopefully, this means they get mad at the book, not you. Deflecting blame onto inanimate objects or concepts is a fantastic disagreement settling technique. Perhaps the phrase: "I'm sorry, there's nothing I can do, that's just company policy" sounds familiar to you?
- Give them advantages when they are clever. In the example of the race that you gave, let their trick with teleportation (assuming it was rules-legal) give them a head start...and have the Zhentarim act extremely surprised to find out that they aren't in the lead. "We teleported! How did they get ahead of us!?"
- Be blunt. If your party starts asking for something absurd, break character and tell them why not. "No. I can't let you guys make off with a pair of CR 16 minions...it'll break combat balance so badly I might kill you all by mistake." or "Sorry guys, you just ignored absolutely everything I had prepped for tonight. I guess we're done."
- Have an established 'out.' A way to set an argument aside and move on. For example: "Alright guys, we need to keep the game moving. I'm just going to make a call for now, and then if you want to keep discussing it later, you can hit me up on chat/text me/meet me for coffee/whatever during the week. If we need to retcon something later, we can."
So what if this doesn't work?
You had your chat, they didn't listen...what now?
It's much easier to confine low-level players. Let the campaign you are running come to an end, then start a new game with low-level characters. Be more cautious about passing out magic items, make sure NPCs they rescue don't have earthshakingly powerful minions...etc.
Try a different game system
Other game systems, such as Fate and Savage Worlds are less tightly constrained than D&D is. See if they're interested in trying out a game in some other system that is lighter on rules.
Hand over DMing responsibility.
Your players clearly aren't going to be happy with your DMing style, so let one of them take over. You can keep hanging out, keep playing D&D as a player. Let one of them adjudicate their power fantasies instead.