I am working with data where certain time-invariant variables, e.g. sex and birth year, are changing over time. How do I delete the observations where this happens?

The data is a long panel data set: xtset id year

Code:
clear
input float(id year sex ybirth ethnicity)
101 2010 1 1960 1
101 2011 1 1960 1
101 2012 1 1960 1
102 2010 1 1970 1
102 2011 2 1970 1
102 2012 2 1970 1
103 2010 1 1972 1
103 2011 1 1972 1
103 2012 1 1973 1
104 2010 1 1974 1
104 2011 1 1974 1
104 2012 1 1974 2
105 2010 1 1975 .
105 2011 1 1975 1
105 2012 1 1975 1
end
Here, observations with id==102 should be removed because sex changes over time, observations with id==103 because ybirth changes over time, observations with id==104 should be removed because ethnicity changes over time. observations with id==105 should NOT be removed because ethnicity stays the same over time, despite the missing value.

For variables with no missing values I know how to solve this problem:

Code:
foreach V of varlist sex ybirth {
bys id (`V'): drop if `V'[_N]!=`V'[1] 
}
However, I don't know how to solve the problem for ethnicity. By doing the same as with sex and ybirth observations with id==105 are dropped as well. How do I make sure they are kept?

Thank you in advance.