On the topic of Thais not generally being able to speak English that well, I'm not sure teachers can fix this issue, it's more of a society thing. As for good or not so good teachers, that self fixes itself if the society thought changes. I have taught English in Laos for three years. The students there are more interested and motivated, and as a result can speak English at a higher level. Why are Laos students more motivated then Thai students ? Well it comes down to the society group thought or lack there of.
In Laos they have a thirst to talk and communicate with foreigners. They are genuinely interested and eager to learn about other cultures. They are open. Why? I don't know, maybe its because its a smaller country, lack of solid national identity, isolated. The desire to travel to other countries, to explore, perhaps a lack of society group thought governed and pushed by their government to instil a particular idea. Maybe the need to expand and grow, to evolve, perhaps a lack of Laos written books/novels/magazines and Laos TV/movies.
In Thailand they have a genuine disinterest to talk and communicate with foreigners. They're generally not eager to learn about other cultures. They are closed. Why? who knows. Maybe its because its a big country that houses everything that you'll ever need in your lifetime. No need to go outside the country, to travel, to live. Is it a super-strong instilled national identity? The abundance of everything Thai spoken and written - a strong society group with thoughts governed and instilled by the governing forces to produce a singular idea and path.
It has to impact daily life to be truly learnt. Do you remember all your secondary education of statistics? or chemistry? Well probably not, because if you don't actually use it in your daily life it will be eventually forgotten.
My thoughts are that Thai students don't absorb as much as we'd like because they never use the English language (no use, no need). Never read, write or communicate in the English language. They are perfectly happy with everything Thai language, which is perfectly reasonable since they have an abundance of material in their language including technology gadgets.
I think there are two basic needs to learn and use the English language. English outside Thailand, and English inside Thailand.
1) English outside of Thailand:
This one is tricky. Speaking Thai outside of Thailand, won't get you very far. So the obvious blanket answer would be English is the most accepted form of international language from all the countries holistically. Great ! But are your students even thinking about traveling internationally? Living and working in a foreign country? Probably not, even if they say yes, its a half-hearted yes at best. They are young, eyes closed, and everything Thailand, which is reasonable.
So to give them the need to learn English, you have to open their eyes, show them the world outside of Thailand. The opportunities, the enriching experience, the tastes and delights of foreign cultures.
2) English inside Thailand:
Very difficult but shouldn't be. There are two reasons to speak English inside Thailand.
Firstly, jobs and career ! Seems simple doesn't it? You'd think by simply explaining to your students that if they excel at the English language they will be provided with a greater opportunity in the job market. Their wages will be generally higher, and would have preference over others that can't speak English as well.
Maybe try actively showing them the opportunities that lie ahead. Clip job postings for an English speaking/reading Thai national. Create a job board, and continually post the clippings, showing all the different employers, from NGO's to government and private institutions. Show the difference of wages. You can do an in-class exercise if you have access to the internet or assigned homework, asking each student to find 5 jobs requiring English and 5 that don't. You can bring in guests, either employers or employees explaining a real life application of their English skills in the job market.
Also actively explain that everyone can get a A+ in English class, or get a degree or certificate without actually learning the subject. It might look good on your CV, and get you an interview, but probably won't land you that job when you have to demonstrate your English speaking and writing skills.
Secondly, communicate with foreigners within Thailand:
This one is extremely difficult to instil. As it is now'ish, it's kind of like two worlds, no wait, more like three worlds in Thailand. You have Thais that speak with Thais, you have Foreigners that speak with Foreigners, and then you have the Foreigners that speak with Thai bar girls. Three totally separate worlds within one country. The "average" younger and middle Thai generation don't generally speak with foreigners at all. I don't know, its a weird societal singular thought process that is going on. Whether its construed as bad, improper, or whatever. Thais always worry about what other Thais see and think, you have to keep to the norm or fear reprisal.
Open your students up to the possibilities of engaging in communications with foreigners. Actively explain that foreigners that are traveling here or staying here would love to talk with a normal local outside of the immediate tourism scene. Talk about anything, food, weather, people, activities, daily life, etc. Excite them about learning about other cultures, being inquisitive, exploring worlds with words and pictures. (this one is difficult to instil in your students, I only know that there is a universe of difference between Laos and Thai students, and this being the essential lynch pin of difference)
Long and winded yes, but the Thai culture and logic is baffling.