what's bothering me is that ids that are different in text become the
same
in stata. is there a way to preserve the accuracy and hence uniqueness
of
the ids in this situation?

The only way to preserve accuracy of this many digits is to read it in
as a string (or possibly split the id into two parts). If you need to,
you can recode the string into running numbers after having read the
data in.