AI OnAI Off
I realise this is a very old post but thought I would reply anyway - as I have recently overcome a similar (if not the same) problem.
It is important to ensure that your list of subscribable items is sysnched with the user.SubscriptionInfo.SubscribeTo(pageRef, language).
When I was saving using the method signature without language (user.SubscriptionInfo.SubscribeTo(pageRef) the subscription list checkbox did not show the item as checked - even though a custom report detail subscribed items by user clearly showed that the subscription had been saved.