Basically, what I am unhappy about is that units defined in this way are the units of the particular part. If I need to assign attributes with this units to another part, I need to take extra steps to convert units so that they are the same type but from another part. I have a nagging feeling that I am doing something wrong.
What you could use is:
BasePart.Units unit = theSession.Parts.Work.PartUnits;
This returns the base units. Trying to understand if that's what you are looking for.