I cannot help you with paid products without an active subscription for that product. I suggest just using the Username Fallback feature in CB > Configuration > User Profile designed to set the username to a field value if the username field isn't available.