1)
The particles 에 and 에서 are not interchangeable in most cases.
에서 means some action originates from a place, so 있다 in the sense of "there is" or "exist" can't take 에서. It always requires 에 (When 있다 is used to mean "stay", 에서 also works, but that's not the meaning it's used in here).
So 회사에 만나기 싫은 사람이 있어요 is correct, and it means "At work, there's a person I don't want to see".
회사에서 is wrong to use for the same sense, but your second sentence can be interpreted differently, as [회사에서 만나기 싫은 사람]이 있어요 (회사에서 qualifies 만나기), i.e, "There is someone and I only don't want to see him at work (it's okay elsewhere)". Taken this way, the second phrase would be grammatically correct too, but I think such a phrase is quite unlikely to be said. It sounds like a badly formed sentence.
2)
- 아파트 - multi-unit family housing, usually a big building with a large number of units in it.
- 오피스텔 - multi-unit housing like 아파트 but with smaller individual units suitable for singles.
- 빌라-1) family homes developed as a multi-unit housing in smaller scale, often with large, luxurious individual units.
- 빌라-2) vacation house in the countryside or resorts (별장식 주택).
아파트 has been a common form of dwelling for a long time. A huge chunk of the population lives in an 아파트.
오피스텔 is much more rare.
빌라 is more common than 오피스텔 but less so than 아파트. It's also a term not as clearly defined as the others.