You already found solutions, but were too confused to see them: It is fine that both S1->S2 and S2->S1 are invalid. Then, we can generate a path where S1&!S2 holds, and another path where !S1&S2 holds.

Checking validity of (X a -> G c) -> (F a -> X c) yields a counterexample with two states where variable "a" is alternatingly true and false:

On the unique initial path, X a is false, so X a -> G c is true, and F a is true, but X c is false, so that F a -> X c is false. That is fine, we have a structure that satisfies S1 := X a -> G c but not S2 := F a -> X c.

The other way around, checking validity of (F a -> X c)->(X a -> G c) yields a counterexample with two states where variable "a" is alternatingly true and false:

The initial path satisfies F a, X a, X c, thus F a -> X c, and it does not satisfy G c, and therefore also not X a -> G c. Hence, S2 is satisfied here, but S1 is not satisfied.