In NED +down values should decrease the altitude however when converting to geodetic it returns +ve altitude instead. If you look at the equations in ecef2geodetic then it can be easily seen that returned altitude value will always be positive. I think this happens because sqrt(x) is supposed to be +/- value but in code we always end up using only + value.