Spoiler:
The battle, yes it's bugged what you do is go easy on the damage and let him absorb all the dragons. Going all out tends to bug him because apparently the souls he absorbs heal to a certain amount and it's supposed to top him off, bringing him below 20% might prevent the heal to top him off, also do not attack the dragons he absorbs. I think the current glitch/bug is the absorption does not work at all levels of Miraak's health. (Won't top him off after a certain amount of damage dealt to him)
The character being unable to absorb dragons? Well the first time I noticed that, Miraak appeared and took it for himself. Then after that one situation of stealing, I was able to absorb them for myself.