Hi,
you need to create a instance of graphics overrides and then just use another overload of SetElementOverrides which takes elementId and OverrideGraphicSettings as inputs.
sth like
ogs = OverrideGraphicSettings()
ogs.SetProjectionFillColor(R,G,B)
ogs.SetProjectionLineColor(R,G,B)
ogs.SetProjectionFillPatternId(pattern.Id)
ogs.SetSurfaceTransparency(100)
ogs.SetHalftone(True)
t = Transaction(doc, 'transparenthalftone')
t.Start()
for i in selection:
doc.ActiveView.SetElementOverrides(i.Id, ogs)
t.Commit()
In your code → only the last override would be applied