I want to start by saying this is an attempt at an explanation not just for you, but anyone who stumbles upon this thread, and is not making any assumptions of anyone’s character.
The answer to why it’s offensive or gross is twofold.
First is that using it as a noun like saying “I went on a date with a female” sounds clinical or sterile. Female as a noun is mostly used in science and medicine, and women don’t want to feel like test subjects. They get objectified enough as it is. Is it technically incorrect? No. But it feels that way to the person being called it.
Which leads to the second, more important reason. They’ve asked. Again, to emphasize the importance: They’ve asked. In general (yes there are exceptions), women have asked people to stop referring to them as females (the noun), and if you respect people, then you call them what they ask. You hopefully don’t call Asians Orientals anymore. And when your friend Stephen says he goes by Steve, hopefully you say Steve the majority of the time. Or if Richard really hates being called Dick, then hopefully you don’t call him Dick. Language is fluid and cultural, and if you want to get along with people (Asians, Steve, Richard, women) then you should learn to use language their way.
I think that is really the more important reason, because it’s totally fair if you don’t understand why someone else finds something offensive. Everyone has had different life experiences and not everything offends everyone. But when a large swath of society says they find it offensive and you continue to do so, then you are being offensive regardless of whether or not you understand why. And in the end, if you choose to continue to be offensive just because you don’t buy the reasoning, then you shouldn’t be surprised when you get bad reactions and find it hard to bond.
Tips for a better life: Call people what they want to be called. Be nice for no reason. If in doubt, ask for advice from someone who doesn’t look like you.
Hope this makes at least some sense.
In your first examples, you are using female as an adjective. A female troop, a female Sargent, a male soldier. That’s usually fine. Even “that female cashier over there” is probably fine. However if you say “that female over there” or like you pointed out, “get over here right now, female” or really any other instance where female is used as a noun instead of an adjective, that’s where it becomes gross. It’s all about adjective vs noun. Adjective: usually fine. Noun: usually not.