Dynatrace automatically detects abstract Process Groups from processes that are performing the same functions across multiple hosts. So if you e.g. have 3 Tomcats on 3 Hosts that accomplish the same tasks it's assumed that they are similar so they would be one Process Group. You can also manually modify how Process groups are detected.
Every one of these 3 tomcats would then be a Process Group Instance of the detected Process Group. So one Process Group can have multiple Process Group Instances. These often map to the physical processes but they don't necessarily have to because e.g. Dynatrace treats all the worker processes as one Process Group Instance.
yes, Process Group Instances are just called Processes in the UI. These just don't always have to correspond one-to-one to the physical processes running on the machine.
Example: If you have an Apache Webserver and it has many worker processes, Dynatrace will only display one Process/Process Group Instance for a single host.
If you have another Apache Webserver on another host running that delivers the same application, Dynatrace will put both these Process Group Instances in one Process Group.