Ignoring my own calculated parameters and using this answer as example, the solution for the custom coordinate system is (it works):
DERIVEDPROJCRS["Historic site grid",
BASEPROJCRS["WGS84 / UTM zone 35N",
BASEGEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]]],
CONVERSION["UTM zone 35N",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",27,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",0.9996,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",500000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",0,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]]],
DERIVINGCONVERSION["Affine",
METHOD["Affine parametric transformation",
ID["EPSG",9624]],
PARAMETER["A0",-428175.08,
LENGTHUNIT["metre",1],
ID["EPSG",8623]],
PARAMETER["A1",1.00014473897784,
SCALEUNIT["coefficient",1],
ID["EPSG",8624]],
PARAMETER["A2",-0.0227063743705598,
SCALEUNIT["coefficient",1],
ID["EPSG",8625]],
PARAMETER["B0",-4164307.973,
LENGTHUNIT["metre",1],
ID["EPSG",8639]],
PARAMETER["B1",0.0227063743705598,
SCALEUNIT["coefficient",1],
ID["EPSG",8640]],
PARAMETER["B2",1.00014473897784,
SCALEUNIT["coefficient",1],
ID["EPSG",8641]]],
CS[Cartesian,2],
AXIS["(E)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["(N)",north,
ORDER[2],
LENGTHUNIT["metre",1]]]