It sounds like this is either an issue with contact attribution in HubSpot or your conversing tracking in Google/Microsoft Ads. I have a bunch of questions and explanations below to help you troubleshoot!
Are you using the Google Ads integration with HubSpot? If you’re not, you should definitely set that up (instructions here)
If you’re not using the Google Ads integration, are you using UTMs in your Google Ads destination URLs? If you’re not, you definitely want to pull in at least the “Campaign name” to identify those contacts
Were these net new contacts that didn’t already exist in HubSpot for the provided email address? If they already existed in HubSpot, their “Original source” value won’t change upon reconversion (“Latest source” will show you the most recent conversion source though)
Are your conversion actions in Google/Microsoft Ads actually logging conversions for individual contact creation? Make sure you’re not overinflating your conversions (i.e., a conversion action firing on every page load, a conversion action set to run multiple times instead of just one time)
Is it possible for a single contact to register multiple conversion actions (i.e., viewing product, adding product to cart, checking out)? Keep in mind that the “conversion” for HubSpot is the actual lead being created