As regard the software, if my company employs company B for the development, who owns the source code? Is a specific contract to be drawn up regarding licence, exclusive use & resale rights? Can my company include the sole copyright to the software in the contract? Will this cost more money or is it common practice?
It's entirely up to the parties concerned, what they want to achieve and their normal business models. Simplest is probably you own it: you pay for it, so you own everything 100%. However, if it incorporates components already delevloped by the provider, this mightn't be possible. You could license those previously developed components and still own the new stuff outright. Or you might license them. Or you might own and the company providing them license them back. The possibilities are endless.
Is there a convincing template?
Anyone in the business of developing s/w should have templates available. Just make sure they suit what you want rather than the other way around.
Finally & most importantly, how do I tender the project to software development companies without explicitly giving up the idea & its potential? Should I employ someone to break the project down to exact technical components?
It's quite common to sign a non-disclosure agreement (NDA) before having any discussions. Make sure it's mutual (i.e. both parties are equal): this simplifies the legals a lot, as each party is in exactly the same position. PM me if you want a template, but again, anyone in the business should have one and be happy to sign it. As a general rule, larger companies will want to work with their own, smaller companies are more open. If it is mutual though, things are a lot simpler.
Typical NDAs will identify the parties involved, the subject of discussions and then the standard terms, covering confidentiality, disclosure, time limits etc. etc.
Once this is in place, I'd sit down and have a pretty open discussion on what you want and also talk about options around ownership/licensing etc.