Some examples are hard to explain because they are all short, isolated sentences. The 은/는, 이/가 distinction is more pronounced and easier to explain when the sentences are in context.
Also, what's more important for learners is knowing the clear cut cases where only one and not the other makes sense. In many situations, either particle may work fine with a subtle nuance difference which might be too minute to understand.
Anyway, I'll try to explain it as best as I could, using some code phrases below.
- For 은/는: 1. general statement (representative of the whole group) 2. set it apart from the other(s).
- For 이/가: 1. factual and incidental 2. designate one instance out of indeterminate many.
1 역에 사람이* 옵니다.
2 역에 사람은* 옵니다.
#1 makes a factual statement making a designation of a specific person, that a person comes to a station. #2 is strange. 사람은 역에 옵니다 is more common ordering, but even as such 은 implies a general statement which is at odds with 역에 옵니다, a clearly incidental statement.
3 오랜지는* 먹고 바나나는* 먹지 않았습니다.
4 오랜지를* 먹고 바나나를* 먹지 않았습니다
#3 is more natural as 는 sets the two apart, like "As for oranges I ate them, but not the bananas". #4 sounds monotonous and mechanical, like "I ate the oranges and I didn't eat the bananas".
5 구두가* 자동차 안에 있습니다.
6 구두는* 자동차 안에 있습니다.
Both can work. #5 seems better.
7 아파트는* 높고 집은 낮습니다.
8 아파트가* 높고 집은 낮습니다.
Both can work. #7 seems better.
9 닭과 개는* 동물 입니까?
10 닭과 개가* 동물 입니까?
Both can work. #9 seems better.