* 하지만 = 하다 + -지만.
하지만 is 하다 with the connective verb ending -지만 (.e.g 동의하다 + -지만 => 동의하지만), but it can also refer to anything that has been said or implied, like "but" or "however". In this usage, it is about the same as 그렇지만 or 그러나 (but, however, even then).
e.g. 네 말에 동의해. 하지만 그럴 순 없어 = 네 말에 동의하지만 그럴 순 없어 = I agree with you, but I can't do that.
* 있지만 = 있다 + -지만.
있지만 is 있다 (there is/exists) with the -지만 ending. It doesn't have a special usage like 하지만 other than its original meaning of "there is (something), but ..." or "I have (something), but ..." ("there is" and "I/they have" share the 있다 structure in Korean).
e.g. 그럴 계획은 있지만 아직 더 기다려야 해 = I have a plan for that, but I still have to wait some more.
것을 is 것 (thing, fact, point) suffixed with the object marker 을 attached to it to make the phrase/clause an object of a verb.
There are many ways to use it, but it usually creates a noun clause like "that" does in English.
- 나는 네가 그렇게 생각하는 것을 몰랐어 = I didn't know that you were thinking that way.
- 너의 뒤엔 우리가 있다는 것을 잊지 마 = Don't forget that we are here behind you.