You took apart the engine and replaced the head gasket? Was there any evidence of a leak, such as bubbling coolant? Did you have the head checked for hairline cracks and resurfaced by a professional machine shop, or did you just slap it on with a new gasket? Did you use new bolts, or did you reuse the old ones, even though they stretch during initial loading?
You don’t say what model this car is, but on some models, there is supposed to be constant flow through the heater core. On certain models, the only coolant flow when the thermostat is closed is the bypass through the heater core. This also means that air can become trapped behind the closed thermostat if the heater core is plugged up, or has been bypassed.
The solution is to drill a small orifice in the thermostat (1/16" to 1/8"). This will allow any trapped air to bleed through. Also, if the heater core leaks, and you are unwilling to replace it, you should install a proper bypass hose, not this kinked hose that you have now.
Kia has made many different models, using many different engines over the years. So we would need to know the exact year, model, and engine size.
Also, what kind of mechanic are we talking about? A licensed shop, or some person who claims to be a mechanic, and offers to fix peoples’ cars for less money than what a licensed shop would charge? A lot of these people who operate out of their home are dishonest and/or incompetent–which is why they aren’t the “bargain” they claim to be.
The common causes for that symptom are the parts above you’ve already replaced. hmmm … other ideas to consider
There’s a coolant path blockage somewhere, either an external hose, or inside the engine. First test, locate a hose that nearly all the coolant goes through when the thermostat is open.
Monitor the flow rate there, should be a lot of flow in that hose, like opening an outdoor water faucet. On my cars I do that at the top input hose to the radiator. I remove it from the radiator and let the coolant go into a 30 gallon holding tank, meanwhile filling the radiator as the level goes down myself. Car parked, Engine idling. Could also replace all the cooling system hoses, and demineralize & flush all the cooling passages inside the engine.
Engine is running too lean (too much air or not enough gasoline in the fuel/air mixture). That’s like blowing air on a campfire, causes it to get really hot. Ask your shop for a fuel-trim measurement.
Bypassing the heater core wouldn’t cause the engine to overheat on either my cars, even if the bypass hose was kinked and completely blocked, but maybe that kink in the hose (photo) could be producing some bizarre symptom w/ your engine design. Ask shop to rig up a better bypass method, one that doesn’t have a kink. Or just replace the heater core (I presume it has a leak). You might be able to test this idea by just placing a new (or know good) heater core on the passenger-side floor, pipe it up so coolant freely flows through it, and see if that causes the engine to run at the correct temperature.
Suggest you explain why your heater core is bypassed? And the routine cooling system maintenance this car has received. If a heater core leaks, could indicate cooling system at one time got very corroded and needs to be cleaned of all the gunk that has accumulated throughout the system. If you had that problem, the gunk would usually have been very visible when doing the radiator replacement.
Cooling system or pressure cap is not holding pressure. Common shop test.
Or one of the items you’ve replaced is still faulty or the replacement method was faulty. For example it does no good to replace radiator if something is blocking the free flow of air through it, like a dirt/debris clogged A/C condenser.