This should do it, but you would need to put it in a loop to go through your mxdsimport arcpy
inMXD = r'c:\test.mxd'
outMXD = r'c:\test1.mxd'
rLayer = 'test3' #Name of reference layer
mLayer = 'test4' #Name of layer to be replaced and moved
lyrFile = arcpy.mapping.Layer(r'c:\Test4.lyr') #Layer file used to replace layer
mxd = arcpy.mapping.MapDocument(inMXD)
for df in arcpy.mapping.ListDataFrames(mxd): #loop data frames
for lyr in arcpy.mapping.ListLayers(mxd,"",df): #loop layers
if lyr.isGroupLayer == 1: #Is layer a group layer
for glyr in arcpy.mapping.ListLayers(lyr): #loop layer in group layer
if glyr != lyr: #Not Group Layer Name
if glyr.name.lower() == mLayer: #Layer to be replaced and moved
arcpy.mapping.RemoveLayer(df, glyr) #Remove the layer
arcpy.mapping.AddLayer(df, lyrFile) #Add layer based on Layer File
if glyr.name.lower() == rLayer: #Layer to be used to reference position of move layer
refLayer = glyr #Set ref layer
#Have to loop through layers again as layer is added outside the group layer
for lyr in arcpy.mapping.ListLayers(mxd,"",df): #Start new loop of layers
if lyr.name.lower() == mLayer: #Is move layer
moveLyr = glyr #Set move layer
#Move layer to required position
arcpy.mapping.MoveLayer(df, refLayer, moveLyr, "BEFORE")
mxd.saveACopy(outMXD)
del mxd
-Ben