Notice that CamCreate and CreateVehicle create objects at different positions.
What is hapening to you is that your mg is being created at the bunker's positon plus the increment you had in the position array: [(getPos _Object select 0)
+(0),(getPos _Object select 1)
+(0),(getPos _Object select 2)
+(0) ].
So, instead of increasing it, you should decrease it.
However, everytime you change the bunker's direction, you'll get the same problem, as the MG is not being placed at a relative position but at an absolut position. Therefore, trignometry gets in action:
_Mg1 = "and_WW2mg42b" createVehicle [(getPos _Object select 0)+cos(getDir _object + 90),(getPos _Object select 1)-sin(getDir _object + 90),(getPos _Object select 2)+(<whatever>)]
I might have failed the angles, but you'll surely get around that...
Of course, you'll still have to try several times before getting the right pos, but once you've achieved it, it won't fail anymore.