Thank you for your email. Parenting teens can be a challenge, especially as a single parent. It sounds like you are doing a lot of things right. Giving choices can help teens feel more in control. But it is true that you are the parent and can make the rules and guidelines for the home. If going to counseling is not negotiable, let your son know this. Then be prepared to follow up with a consequence if needed. For example, you can say, “Counseling is at _____time and ____place. We will be leaving at ____." Don't give him the option of not participating. If he then refuses, you remove privileges as a consequence. No arguments. Just explain that counseling is an expectation at this time. Keep in mind that you can't make him talk when he gets there. Sometimes it helps to talk beforehand about why you are going to counseling. Frame it as an opportunity for both of you to work on your relationship. He might surprise you and be willing to work on your relationship. Teens usually want things to go well between themselves and their parents.
It might help your relationship if you identify some things that can be adjusted or changed. For example, would a later bedtime on weekends be okay? Can you agree to change other things that might be to his liking? Compromise can go a long way toward helping change happen. Just make sure that you are okay with those areas he wants changed. Hang in there, parenting teens can be a challenge. But in the end, most teens appreciate a parent who sets rules and follows through with consequences. They may not recognize it now, but they will appreciate it in the future.
Here are some additional articles on setting rules and consequences that you might find helpful:
When Kids are Too Old for Timeouts
https://www.boystown.org/article/Pages/job-cards-as-effective-consequence.aspx
Dealing with Defiance in Tweens and Teens
https://www.boystown.org/article/Pages/dealing-with-defiance-in-tweens-and-teens.aspx