These are my basic thoughts for your questions.
1. Though I was able to add new Unit of Measure, I would like to know if it was advisable to add so.
Yes. If it does not exist in AF UOM class you can add your UOM with valid reference.
2. Enabling Allow Extensions on Base template was allowing me to Change display UOM on the derived templates. But the units available on derived templates were specific to the category of the default UOM on base template. Is it possible to have units from all categories on the derived templates?
I don't generally like the approach of "Allowing Extension" since it defeats the purpose of a "Template" as Template integrity is not achieved through this. As far as different UOM are concerned for different assets . What you can do is have an attribute call "UOM" that will display the Tags actual UOM and then can have a attribute which will convert the base UOM to standard UOM which can be for calculation purpose as it will be easy to define a calculation on Template.
For example : Majority of Flow indicators received has UOM called kg/hr but some of them are in "tons/hr" then what you can do is store this "ton/hr" tag is different base attribute and then you can map the same tag to the attribute having Uom "kg/hr" in this format //PIServer/FlowTag;UOM=tons/hr
Note : Tons/hr and kg/hr should be in same UOM Class with valid references and factors
Different categories for Different UOM . This will be difficult to manage in terms managing Analysis/Displays etc. Full benefit of Template cannot be achieved
3. Is it possible to assign a unit to 2 or more categories if required.
Same as approach 2.
These are just my general personal Point of View.
Thanks Akash and Rick for the details.
Could any of you let me know how would PI greeks would keep a track of what UOM has been recently added? Or is it that we should add them as soon as any update happens?