Hi Tom,
Could you please let me know if you are using the TargetingIdeaService to retrieve ideas? Also, what seed input did you use (ad group, keyword etc.)? If you happen to have the SOAP XML request and response logs for the API call, that can help me understand the issue better.
Ideally, if you use an ad group as the seed input, you should not see the keywords that are already available in your ad group. However, if you use a random phrase as the seed, you may see some keywords in the response that may already exist in one of your campaigns/ad groups.
Regards,
Vishal Vinayak, AdWords API Team