I'm not sure if I follow 100%, but I'm guessing you set up the alert as a Node "property to monitor", then changed it to hardware, then changed it back.... Or some variation on that.
The trick is that the field names - both the triggers and the fields you can use in an email - can change based on the "property to monitor" setting. So you can't just flip it back and forth and expect it to work.
Example: For a NODE alert, the node name field is "${Caption}. But for a HARDWARE alert, the node name field is ${NodeName}.
What I've found when i've done that in the past in my days as a naieve, free-spiritied youth was if I saved said alert and then came back, the fields were completely messed up - they actually pointed to entirely different fields or were just plain null.
So the upshot is to set the property to monitor and THEN build your report. If it's still not working, post a screenshot here.