Since you can't use は in subordinate clauses, it looks to me like が is forced to take on both roles, so how would we distinguish them? For example, if we have the sentence
僕が好きな動物
how do we distinguish between "animal that I like" and "animal that likes me"? Since it's が, I think that if we treated that clause like a sentence on its own it would definitely mean "I am liked" since が would directly link 僕 to だ, but I've seen sentences like
彼が好きな寿司
translated as "sushi that he likes", so either my assumption about が in a full clause is wrong or the way it works changes somewhat.
So far I've assumed that you can use clarifying nouns like 方 or こと, but I'm pretty sure that that won't happen in every usage case, if I'm even right about that.
Thanks!