Mathematicians have proposed several different constructions of the reals. If you were familiar with, say, constructing the rationals from the integers or constructing the reals from the rationals, you would know that this is not a problem. One of the more straightforward constructions of rationals define a rational number as an equivalence class of tuples of integers, corresponding to the numerator and the denominator. We often use one of these tuples to represent a rational number, e.g. 2/3 or 4/6. And since they are in the same equivalence class, either alone is sufficient to represent the same rational number. This is despite the fact that the tuple 2/3 and the tuple 4/6 are different mathematical objects.
As for the definition of 0.999..., it's not what you think it is. There is a specific definition for infinitely repeating digits that is different from representations without repeating digits.
That is, the positive real number that 0.x... represents for all digits x is defined as L, where L is the supremum of the set containing 0, 0.x, 0.xx, 0.xxx, 0.xxxx, ...
A supremum L in E of a set S subsetof E is defined as follows: L is the smallest number in E such that L is greater than or equal to all numbers in S. I shall not prove here that L is unique, but it is. With respect to the reals and the set containing 0, 0.x, 0.xx, 0.xxx, the supremum of that set in the reals is 1.
My knowledge of the construction of the reals comes from Chapter 1 of Water Rudin's Principles of Mathematical Analysis, ISBN 0-07-085613-3, which you may be interested to read, but beware that it's considered a difficult read for beginners.