I did some more digging and realized that hibernate was using scope_identity. Since the table has a trigger scope_identity returns null. I still don't know what to do about it though since I can't change the database due to legacy applications though :(
would it be possible to use the sequence generator for that field. so it generates a new value every time it sets it? defined like.
<property name="identity" column="IDENTITY" generated="insert"/>