There are a couple scenarios that come to mind for me.
1) The pages are similarly optimized, but some of the seemingly small differences may be strong(er) ranking signals for a specific keyword - such as actual link profile (inbound external) and/or the way the site is structured (internal linking and anchor text).
2) Competition may be "around" the same, but again here there are differences. The keywords where you are not ranking - do the same competitors rank for the keyword where you also perform well? If the competition is different and other sites come into the mix you will see different ranking signals come into play, such as anchor text in external inbound links.
3) You've over-optimized. This can definitely happen on a page level - done it myself. In that case your site would be in the index, but rank way, way back in the index. Growing better inbound external links with diversified anchor text is the best fix.