- Keyword targeting: seems like you're targeting a lot of product based keywords; these tend to be hotly contested, generally favoring brands and top retailers for top slots - Not quite enough content on the pages, in terms of word count... - As you mentioned, Google is probably seeing the Amazon links on your landing pages and penalizing your rankings
So - potential thoughts on how to change it up...
- Switch from talking about products to problems... probably can get rankings a lot easier for those keywords, especially if you're willing to target long tail traffic. - Move amazon links off the landing pages; at a minimum, cloak the link but better yet try having a page or two that discussed the problem then make the user click to get to another page which recommends specific products - Also getting the vibe you might need more content density for each topic; more pages addressing a single area, with a higher word count.