These are kind of some big questions with a lot of possible answers. So I'll go with the most general response.
Top 40 Results:
That can be a terribly unrealistic goal, or one that's tough. If these are branded queries (e.g. Product/Service Your Brand), it will be tough even for an established brand. Someone else always sneaks in there, somehow.
Given that you've been tasked with doing that for hundreds of keywords, it sounds closer to the terribly unrealistic side of the spectrum.
Competition With Yourself:
It can be good and it can be bad. It really depends on the pages. Some pages can be better than others, given their purpose. So if you want someone to call and for some reason there isn't a phone number, they won't find what they need and you've lost the sale. If someone has many options from only one source, they may choose not to click at all for some reason.
Better KPIs:
A good KPI is something that's achievable and in line with real business goals. Good KPIs keep the lights on. Higher rankings don't always guarantee business goals will be met. Honestly, there's some real garbage pages out there that rank well for certain queries. You can virtually guarantee they aren't worth the cost of hosting.
Perhaps you want more service calls? Maybe you want to increase your email database? These are things that you have to establish with decision makers/stake holders within the business. A good set of performance indicators pay the bills. Rankings for the sake of rankings often deviate from that purpose.
Hopefully this was helpful.
Edit:
I forgot to touch on the .net to .com migration. There are a lot of variables there as well. I really don't know how well the migration was handled. If it was handled well, you might see some cached results from the .net version, but eventually everything will swing over to the .com.
If the migration wasn't handled well... you have a whole set of other problems.