here is my problem:
For example, lets say I have Chrome running with 5 tabs, this will create 6 processes called Chrome.exe, one for chrome and one each for the tabs.
Now using Process.GetProcessesByName(“chrome”) will return all 6 processes.
How can I work out which of the processes is the main one?
It is possible as this is what Process Explorer does:

Basically I want to get the handle for the master chrome process, how do I do this?
It really depends on the process you want to study/analyze. Only processes know how they behave internally.
In the specific Chrome case, you can check which one is the parent of others.
Here is a link to determine a process parent: How to get parent process in .NET in managed way