How to add template objects (groups) from other file? Let's say I have a *.blend containing a few objects which I would like to add to a group and use as a template. This could be some (textured) meshes and a text object which are connected in a group. A totally arbitrary example might be a player mesh (e.g. a tank) with a health bar and a life-counter. 

Then, in another blend, I linked the above group, added them to an invisible layer and and would like to:


Add instances of the whole group, staying connected as known from the editor
Change properties of the group members (e.g. text)
Move the whole group at once with Python


How can I achieve that?

PS: I'm using about the standard BGE (2.79), not the UPBGE fork.
Here are two example files achieving this:

template.blend



This contains two template groups named template_A and template_B, each consisting of two meshes (Suzanne and Cylinder) and a text object, but different hierarchy. See images


 - In the group "template_A", Text and Suzanne are parented to the cylinder ("root" parent).
 - In the group "template_B", there are no parent-child relations.

addTemplate.blend




in this file, both templates are linked and placed on layer 2. 
A cone object acts as spawner,moves around and reacts on Keys A ("template_A") and B ("template_B"). The script add handles the reactions and sets the string (Question 2).

Note that when template_B is added, the three objects fall apart (they have different translational damping), while in template_A they stay connected (question 1). 

Edit: As Monster pointed out in the comment, you can not move the whole group at once by changing e.g. world.objects["template_A"].worldPosition. Instead - you need to move the "Root" parent (see image above), which can be accessd by e.g. world.objects["template_A"].groupmembers["Cylinder"]. This is related to the additionally added question 3.