I have had the same problem with ad targeting on the first/homepage only. The only way I was able to fix it was with a redirect.
When Google’s mediabot first spiders your site it interpits/classifies your site. Sometimes people will overlook something and Google gets the classification wrong. For me I used a funny wordpress “tagline”, which has high relevence with relation to the content of your site. That caused me my google grief.
According the “powers that be” Google should every so often interpit/re-classify your site and/or pages within your site. I’m still waiting for this to happen months later….
Anyway a redirect will appear as a different URL and a new classified should take place for that page. This is how I implemented the work-around: https://bytearray.brixtonjunkies.com/2009/08/20/wordpress-adsense-ad-targeting-redirect/