I've searched around a lot and been unable to find one solution that addresses my particular problem:
1. Building a Drupal site that uses Ubercart to sell memberships and assign roles
2. New users need to be able to enter personal information in a checkout pane that is then used (via tokens perhaps?) to create and populate a content profile node
3. existing users need to be able to edit and update their profile information at any time, and also renew their role expirations and do both of these without errors or interference.
What I've tried:
1. Node Checkout - the problem here is that when it comes to populating profile fields, this seems to be better for one-time event registrations not user profile information on an ongoing membership-based website. When I tried to set this up and a user goes back later and tries to update their profile information, it tries to 'check out' the node via ubercart but I just need them to be able to save the fields divorced from any ubercart connection.
2. UC Addresses contrib module - Looks promising but haven't tried it yet - is it possible to use this information for profiles?
2. Rules and conditional actions and custom modules - I'm willing to try any custom coding to get this working but I just don't know where to start and I don't want to write any insecure code. For example: how could I use a custom module that would add a checkout pane to the membership product that would create a new content profile node for new users if none existed and update an existing user's content profile node's fields if the node was already there?
Also of note - I only need a portion of the content profile fields available during membership purchase.
This issue is very difficult for me to wrap my head around so I hope I've been clear. Thanks.

Seems like a frequently requested workflow - I've done about 10 hours research trying to find an answer myself