If your problem is with doing this via feeds (from your comment to me), I'd try the following:
It looks like you're already using the feeds module and that your incoming terms are mapped to your term reference. Good! It also sounds like you have a hierarchical vocabulary. Good.
Now, I'd just have one single term reference field on your node. No need to have one for the first level and one for the second level of your vocab. Just have ONE term reference field, and set that single term reference field to take an unlimited (or whatever number greater than 1) number of values in the 'Manage fields' page of your content type. (It won't just take one for the parent and one for the child, but both can be set once).
Download and install the Feeds Tamper module, which allows you to process results in various ways during the feeds import. Once your feeds tamper module is installed, when you go to /admin/structure/feeds, you should see a 'Tamper' link where you can configure your tamper settings.
For this to work properly, I'm assuming you can make your import file be in the form of 'Apples;Green' for the hierarchical terms -- i.e. that you can provide them in one column, separated by a special character, and that that column is mapped to your one single term reference field. If you can do that, then you can set your tamper to parse them out and set both the parent and child of the vocabulary this way.
Go to the 'Tamper' link, find the field that represents this taxonomy and select 'Add plugin'. Then select the 'Explode' plugin and specify the special character that will separate your parent/child terms.
Test with an import, and let me know if that gets it working properly....