That's a really vague question. Really it could be absolutely anything. However you have 2 different issues:
1 - Someone else is out ranking you
2 - Your expected page is not appearing
Answering "Why is another site outranking mine" without knowing the URLs is impossible. Their page might be better optimised, they might just have more authority. I'd focus on the other question first, then come back to this if solving #2 doesn't fix this as well.
Question 2 is "Why is my sub page ranking above my homepage for that specific term". Again, this is hard to answer without seeing it. However, assuming that the page is at least indexed, I'd be looking for issues such as:
- How good is the onpage optimisation of the home page?
- Is that page well linked internally?
- Does that page have unique (and preferably valuable) content?
- Does that page have any external links?
- Are you cannibalising your own rankings by repeating the terms you are targeting across both the home page and sub-page.
Answer those questions and you will probably be on the right track. Solving this, and getting that sub-page performing better, may well deal with the competitor issue at the same time.
Before you rush off and look at all of that though, I have one more question: Do you need to rank #1 for that term? Depending on how well established you company is the answer may well be yes. However for many companies the answer would be no. Your analytics will have the answer - are people searching that phrase.
Sorry if that last bit sounds obvious/daft - but it's an important point. Lots of people chase listings that will never benefit them.