Why does は change the entire sentence?


> 魚 **は** 好きな人。  
>  Fishes like people
>
> 魚 **が** 好きな人。  
>  Person that likes fish

Although I know the definition of both sentences it is very confusing to me,
why が works and は doesn't.




Well, it seems that you have wrongly understood these sentences.

There are two possible interpretations of 魚は好きな人。:

  1. The fish is a person who I like.
  2. A person that only likes fish.

To mean "Fishes like people", it should be 魚は人が好き。

Interpretation 1 doesn't really make sense, so 魚は好きな人。 is supposed to mean
"Person that only likes fish".

Now the difference between 魚は好きな人 and 魚が好きな人 is not so big. Here は introduces
a contrast between fish and all the others.

