One very common problem is the hijacking of AdSense earnings by sneaky plugins that swap out your publisher ID with their own. This is particularly common for AdSense websites built on the WordPress platform. Have you checked to see if your publisher ID is the correct one when you view the rendered web page’s source code?
A telltale sign is when your Adsense Impressions are significantly lower than your page views for pages with AdSense ad units. Have you checked to see if your server logs jibe with your AdSense reports?