Empty for a group instance is far away from the group
No need to apply scale and location of your objects, nor recreate the groups.

You need to manually set the center of your group, which by default if unspecified will be the world coordinate [0,0,0].

You can check this by selecting any object belonging to a group original (not one of its instances) and under the Properties Window > Object > Group see the coordinates there.

To manually set it to a desired location either introduce coordinates manually, or place the 3D cursor at the point in the scene where the center should be, press the small arrow at the desired group and choose Set Offset from Cursor