은/는 vs 이/가 are two different ways of saying things.
은/는 the topic marker says something organized around a concept, because that is a common way we view the world. On the other hand 이/가 the subject marker is about isolated, random things that are more difficult to categorize. Simply put, the two can be thought of as things (how something is) vs incidents (what happens).
For example, here are sentences about a window.
1. 이 창문은 보기 좋다 = This window looks good.
2. 누가 돌을 던져서 이 창문이 깨졌어 = This window shattered because someone threw a rock.
#1 talks about the window, keeping it as the topic.
#2 relates an isolated fact, with the focus on the incident and not on the window.
So 은/는 is commonly used for explaining things or introducing people (제 친구는 미국에서 왔어요), while 이/가 is often about random happenings (어제 밤에 큰 불이 났어요).
은/는 also has the side-effect of setting the noun apart from others, and 이/가 is someitmes used to identify an individulal out of a collection.
- 이것(을) 내가 할게 = I'll do this one - no special nuance.
- 이것은 내가 할게 = I'll do this one (but I don't know about the others) - 은 adds the nuance of "as for this".
- 개는 다리가 네 개다 = Dogs have four legs (general statement about the dog as a species).
- 개가 다리가 세 개네! = Why, the/this dog (I see) has only three legs (a comment on a specific dog with only three legs)
And you're righit about 에 marking a location and 에서 indicating where something happens.
Note that 에 can be used with action verbs too as long as the action just relates to it and does not start from there. 에서 always means the action starts at the place (but it may end anywhere).
- 나는 일본에 갈 예정이다. Going somewhere originates from some other place, so 에 is correct and 에서 is wrong.
- 이 사진은 일본에서 찍었다. Taking a picture is bound to the place, so only 에서 is correct.
- 위험한 곳에 가지 마 = Don't go to a dangerous place. (에 indicates a destination)
- 추운 방에서 기다렸다 = I waited in a cold room. (에서 indicates where the action took place)