I tried your method, but it seemed that the expected results could not be produced:
M1={{0,0,1,1/4},{1,0,0,1/4},{0,-1,0,1/4},{0,0,0,1}};
M2={{0,0,-1,0},{0,-1,0,0},{1,0,0,0},{0,0,0,1}};
mod=1
gens={M1,M2};
This is your method:
In[42]:= Union[Join[#1,
Flatten[Outer[OperatorApplied[f, {2, 3, 1}][mod], gens, #1], 2]
(*Flatten[Outer[ AffModOneDotOnLeft, gens, #1, {mod}, 1], 2]*)
]] &@{AffineTransform[{IdentityMatrix[3],ConstantArray[0, 3]}]//TransformationMatrix}
Out[42]= {{{{f[-1, 1, 1], f[-1, 0, 1], f[-1, 0, 1],
f[-1, 0, 1]}, {f[-1, 0, 1], f[-1, 1, 1], f[-1, 0, 1],
f[-1, 0, 1]}, {f[-1, 0, 1], f[-1, 0, 1], f[-1, 1, 1],
f[-1, 0, 1]}, {f[-1, 0, 1], f[-1, 0, 1], f[-1, 0, 1],
f[-1, 1, 1]}}}, {{{f[0, 1, 1], f[0, 0, 1], f[0, 0, 1],
f[0, 0, 1]}, {f[0, 0, 1], f[0, 1, 1], f[0, 0, 1],
f[0, 0, 1]}, {f[0, 0, 1], f[0, 0, 1], f[0, 1, 1],
f[0, 0, 1]}, {f[0, 0, 1], f[0, 0, 1], f[0, 0, 1],
f[0, 1, 1]}}}, {{{f[1/4, 1, 1], f[1/4, 0, 1], f[1/4, 0, 1],
f[1/4, 0, 1]}, {f[1/4, 0, 1], f[1/4, 1, 1], f[1/4, 0, 1],
f[1/4, 0, 1]}, {f[1/4, 0, 1], f[1/4, 0, 1], f[1/4, 1, 1],
f[1/4, 0, 1]}, {f[1/4, 0, 1], f[1/4, 0, 1], f[1/4, 0, 1],
f[1/4, 1, 1]}}}, {{{f[1, 1, 1], f[1, 0, 1], f[1, 0, 1],
f[1, 0, 1]}, {f[1, 0, 1], f[1, 1, 1], f[1, 0, 1],
f[1, 0, 1]}, {f[1, 0, 1], f[1, 0, 1], f[1, 1, 1],
f[1, 0, 1]}, {f[1, 0, 1], f[1, 0, 1], f[1, 0, 1],
f[1, 1, 1]}}}, {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0,
0, 1}}}
This is the desired result:
In[44]:= Union[Join[#1,
(*Flatten[Outer[OperatorApplied[f, {2, 3, 1}][mod],
gens, #1], 2]*)
Flatten[Outer[ f, gens, #1, {mod}, 1], 2]
]] &@{AffineTransform[{IdentityMatrix[3],
ConstantArray[0, 3]}] // TransformationMatrix}
Out[44]= {f[{{0, 0, -1, 0}, {0, -1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0,
1}}, {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}, 1],
f[{{0, 0, 1, 1/4}, {1, 0, 0, 1/4}, {0, -1, 0, 1/4}, {0, 0, 0,
1}}, {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}},
1], {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}}