It looks familiar.
I don’t see anything there that should cause terms not to be saved properly. I really like the way hooks work most of the time but there are other times they just create a mess. Let me think about it.
So if you remove this action everything works fine?