This is Miklos Schweitzer 2009 Problem 6. It's a group theory problem hidden in a complicated language.
A set system $(S,L)$ is called a Steiner triple system if $L \neq \emptyset$, any pair $x,y \in S, x \neq y$ of points lie on a unique line $\ell \in L$, and every line $\ell \in L$ contains exactly three points. Let $(S,L)$ be a Steiner triple system, and let us denote by $xy$ the third point on a line determined by the points $x \neq y$. Let $A$ be a group whose factor by its center $C(A)$ is of prime power order. Let $f,h:S \to A$ be maps, such that $C(A)$ contains the range of $f$, and the range of $h$ generates $A$. Show that if $ f(x)=h(x)h(y)h(x)h(xy)$ holds for all pairs of points $x \neq y$, then $A$ is commutative and there exists an element $k \in A$ such that $ f(x)= k h(x),\ \forall x \in S $
Here is what I've got:
Because the image of $h$ generates $A$, for $A$ to be commutative is enough to prove that $h(x)h(y)=h(y)h(x)$ for every $x,y \in S$.
For the last identity to be true (if we have proved the commutativity) it is enough to have that the product $h(x)h(y)h(xy)=k$ for every $x \neq y$.
$h(y)h(x)h(xy)=h(xy)h(x)h(y)$
I should use somewhere the fact that the factor $A /C(A)$ has prime power order.