Doing some research on this topic, I found tempered equipment is identified internally by it's "Health" value. A value of 100% is the default; It corresponds to regular, untouched equipment. When the equipment is tempered, this value is modified accordingly. The default way to access this "health" value is through the native function: getItemHealthPercent(). This function only seems to work on persistent references though. And here's where the problems begin. You can't use this function on casted references. Any sort of casting will result in the function returning 0.
Using GetNthForm(), along with GetNumItems() and getType(), to obtain armors/weapons on the player's inventory will not work because GetNthForm() returns a Form. Casting it to ObjectReference will result in getItemHealthPercent() returning 0 for every element.
So how can you tell when a piece of equipment is tempered? The first indication I see, is the name is changed to " XXX Tempered " so I tried using getName() with GetNthChar() to identify the suffix "Tempered". Unfortunately that didn't work, because getName() returns the name of the base object. Then I tried messing around with GetBaseDamage/ArmorRating but tempered equipment doesn't modify the base stats.
If you can't access the Health of the item, compare the stats change or record the different name then what's left? In what way can you spot tempered equipment on the inventory?
Thank you.