Simon,
If you can help the guy and you're prepared to take a risk with the assembly, then a couple of things may work, but I'd need to know which way to jump first.
Firstly some basics which may seem obvious but lets get them out of the way...
You need to own via workflow or at least have checked out both the product structure and the dataset withing the assembly item master when you do this.
Remember that when you make changes to structure within the PSE then you need to save them before opening the assembly in NX. You should never continue to make any further changes using the PSE until you have finished working with it in NX. In fact many of not all installations will check the files out preventing this from happening. I recommend not messing about with manually checking files in and out to attempt such manipulations while they're open in both PSE and NX. It occasionally works but more frequently you have problems and are forced to start over.
You appear to be already across how to add the geometry into the individual NX parts, meaning that the item master must exist for each component which you will furnish with a dataset containing the geometry that you need. You haven't complained about doing this as I understand it. The case is rather that you simply have trouble with doing so via the assembly structure when by your description you wish to vary the contents from what originally was declared as "NO geometry" using the PSE. If I'm correct, though I'm most unsure, you must already have had item masters which may or may not have at the time each contained a dataset with a model of the individual components. I'll assume that the components are made up with the geometry in place, either you're able to add it without opening any assemblies or stop reading here and tell me I need to provide different information if I'm misreading you.
Okay. So now components good. Assembly not so good. What's wrong with simply opening the assembly in the PSE, then deleting the declared contents saving that, and then opening it in NX. You'd then add back all the components using NX and save it in NX, and hopefully find that the PSE version of the structure has now come back populated with what you would hope to have. I suspect either that you know this and don't wish to take this path or it just isn't what you want to so. So I'm fine with it even more so if you could let us know why?
You may also be able to change the NO components setting via the PSE for all the affected components before you open anything in NX. Then you'd save the PSE and open the assembly in NX from the PSE of course. You should then save the assembly if it works to open the components with their (recently added?) geometry showing. This is called synchronizing the NX assembly with the PSE, a condition that should be maintained pretty much most of the time and especially when you need to release or even baseline the data. Again it may be too banal and obvious an observation but necessary to mention if you're not doing this it may be contributing to your difficulties in general.
Another way if you find yourself desperate is to find all the parts that you'll need export them to native, rebuild the assembly quickly outside of teamcenter using only files exactly as exported from teamcenter and then when you're finished you should be able to re-import it into teamcenter. You would open the file once re-imported in NX from the NX session and then save it to overwrite the PSE. You should then be able to open the assembly via the PSE see that it has changed send it to NX and open it all up to check that it is okay and save both. This is probably the same as the first suggestion in a different guise, so you would reject it for similar reasons of they exist. In fact I wrote this up first and thought I'd just leave it in supposing that the system won't let you subvert it structure by any other means.
Enough for now. let's know how you go.
Regards
Hudson