Ok so a very bizarre discovery. At the layout start, I did a "For Each" loop for that object and changed its animation based on a private variable. This caused the Add Attribute to fail when used at any point in the game (and only applied it to the most recent instance of the object). However, if I avoided that loop at start up, it worked fine! Similarly, adding a "For Each" loop for that object at any other point of the game would cause it to break the Add Attribute also.
As a workaround, I decided not to use the "For Each" loop but instead assigned a unique sequential ID to each instance of the object at design time, then used a normal For loop and assigned the animation at startup based on ID. Oddly enough, this did not break the Add Attribute function.
Hopefully this will help anyone else facing this problem. And unless I'm missing something, looks like a fundamental bug somewhere in CC.