1) Switching banks is like having your leg chopped off, putting a normal-sized bandaid on the wound, and then switching that bandaid for a different bandaid because the first bandaid didn't help your problem. Yes, new bandaid will temporarilly be better than the old soaked bandaid. However, you don't need a bandaid, you need surgery. Thus switching banks will not fix your fundamental problems at all.
2) You need to realise the magnitude of your problem. You need to fix the problem of "every once and awhile I get hit with overdraft fees". It is a criminal offense to write a bad check or to overdraft. You are regularly breaking the law. You are lucky you are just getting hit with a few fees and that none of these things have landed you in jail. Yes, it is that serious. After being booked and charged with a crime, you'll be happy that for now you only were hit with a few bank fees. Laws do vary by state. Many states have a minimum amount before they will prosecute. However,
CT doesn't appear to have a minimum. If someone wants to prosecute you, it is a $1,000 fine and/or up to 1 year in jail. Think about it? Do you want to switch banks just to continue breaking the laws?
3) How can you not realize a $300 check hit your account? The instant you write the check, ALWAYS assume it has hit your account. Plan the rest of your spending accordingly.
4) If you don't have the money, don't use your checking account. Create a buffer so that this will never happen to you (eat only ramen noodles for a month if you have to, or donate plasma, or just spend less, or work more.).
I'm sorry to be so harsh when I said this, but I think harshness is needed for you to change.