Moral principles are rationally derived and not subjective
According to moral objectivist philosophers -- your comments pretend that they are the only ones who have anything to say on the matter. They're not.
There are philosophers who conclude everything from "morality is a nonexistent illusion" (nihilism) to "morality is objective, absolute, and universal." There are a lot of shades of gray inbetween and none of them are without problems. That's one of the frustrating things for a first year philosophy student, they take you through a bunch of system of beliefs that have you going "aha!" And then they systematically deconstruct them all one by one as you tear your hair out in frustration. It's a kind of informal (and imperfect) "proof by mathematical induction" that leads most to conclude "ok, there's no perfect, rational moral system."
Kant's categorical imperative is useless because there is no "ether frame" which can be clearly defined (obscure physics/philosophy reference for the win). Utilitarianism faces the problem of Omelas. Moral relativism does a great job of accurately describing human behavior through history, but justifies things like female genital mutilation. Nihilism has an attractive honest simplicity to it but provides no basis for human cooperation. And social contract theory is basically an acceptance of nihilism with a provision of "but if we pretend there are morals we'll all benefit from it, so lets do that."
What the OP is discussing is, in essence, explained perfectly by moral relativism, which basically states that generally speaking moral principles are derived by the society in which they exist out of utility as an adaptive method to fit their current environment. I think it also venerates those moral systems by saying it's what's "right for them" and refusing to judge, but that's where a rational (and empathetic person) must diverge from the theory (in my opinion).
I think a combination of a moral relativist viewpoint and social contract theory really explain human behavior well: it isn't that morals are absolute, rational things as much as they are practical things. Considering certain things right and wrong helps guide humanity towards better ends, and civilizations which do this have happier, more product citizens. For example, it makes sense to abhor homosexuality from a primitive perspective of survival: we needed all the reproduction we could get when we were trying to multiply and conquer the earth. Today we don't need more humans, in fact overpopulation could very well be a problem eventually, so it makes no sense to oppose homosexuality in such a context. Of course morals from those days persist, which is why we need more self-awareness and criticism than mere moral relativism allows for.
In my view, in the end, it's best to think of morals as a set of rules aimed at bringing about a better world, and to think of positions as conservative or progressive related to individual morals. Conservative positions attempt to preserve morals whereas progressive opinions try to change or destroy them. In theory, rational discourse should occur between the two and conservative arguments should win out when the moral in question is still good for society. For example, progressive opinions may propose elimination of rules against theft. A debate would ensue, that conservatives should ultimately win because moralized theft would be destructive to society.
The process takes a long time to work unfortunately. We've managed to use it to eliminate all sorts of barbaric practices in the past (slavery, women not having the right to vote, et cetera) and it's still being utilized today on the battlegrounds over homosexuality's moral status. Up close the process is extremely ugly and slow, but when you pull back and look at it from a macroscopic viewpoint, it's amazing how far we've come in terms of human lifespans (2 of them ago, for instance, women couldn't vote).
Science, empiricism, and reason can be used to inform critiques of morals in this proposed ethical system, but after the cost benefit analysis it always comes down to a decision that is (in some ways) fundamentally illogical. Yes, you can determine that the consequences of "x" being immoral is "y and z," but typically asking whether avoiding y because of z is a good decision is about as scientifically meaningful as asking if ducks are cuter than pandas (you could do research on which better resemble human babies and resemble the qualities of youth, but in the end there's still so much that is impossible to determine purely rationally).
In a lot of ways reason and emotion are inseparable to the human mind. I think Objectivist viewpoints fail to acknowledge advances in neuroscience and our newer understanding of the human mind. I suggest reading George Lakoff's theories about embodied mind.