To be fair the role is made harder because you are in a small firm. The larger the firm the more specialized the role is so it becomes somewhat easier as task switching at least stays in one domain. Right now you have to switch domains, which is normal given the size but not easy.
There are literally way too many details to try and explain here. But IMO, it boils down to this, given the size of firm and team, your job is just complete and total expectation management. Expectations of the business on engineering, expectations of clients on what is doable within budget and time constraints and expectations between the engineers to keep a healthy team.
You can/should split your day and/or split your week into domains and tasks. e.g. do customer followups every morning, team meetings every Tuesday and Friday at 10am or whatever makes sense. This is just about time management and again, setting expectations. Once it has been in place for awhile it will become routine and people will know what to expect and when.
Lastly, you need to stay out of day to day coding at this point as much as possible. Given the size you are too small a firm for you probably not to have some code interaction, but your real role is not to be in code -- or get out of it as quickly as possible after helping a developer. CTO of a company with less than 10 developers is really just a normal team lead with a few extra tasks and a C level title which helps with external customers. I don't mean that as an insult, it just helps frame it some for people. However, what the title adds is client facing responsibilities and business execution responsibilities that wouldn't normally be on a team lead. My personal advice, stay out of product code/client code, but focus on pre-sales demos and mockups etc which can keep you fluent and let you set the tone and pace for the team. Again, if you split your week you should have at least a couple of days a week where you can focus on these tasks.