Before you go too far, do you know if the source of the moisture is the result of condensation that's forming on the vent / ductwork? When ductwork is run through a cold attic space, it's suppose to be insulated. If not, the cold moist air in the attic will condense-out onto the warm duct, which will create moisture. Consider this as the source first and see where it leads you. If this is the cause of the moisture, insulate the duct with 1/2" duct insulation wrap.
Otherwise, you need to 'attack' the leak in the roof from the OUTSIDE. Patching it from below usually proves to be a failure. My best to ya and hope this helps.
Jay J -Moderator
PS: Be careful not to overinsulate! If there's a light in the duct, you need to be mindful that you don't trap any heat in the 'wrong places' that might cause a fire.