Running Office automation in a service is not a good idea as Erland already wrote. You need to consider, that this service runs under a Windows account with different permissions than yours, where the Python script works.
As it is a about Excel, look at the Excel Source in SSIS and consider instead of running a macro doing the post-processing in SSIS.
When you run the SSIS account with the appropriate permissions, then you maybe able to run a macro successfully using automation. But some actions in Excel require that Excel is visible (sic.). So you cannot use this as general approach. And you need to code your macro in a way, that it never opens any dialog, e.g. for error messages.
And finally, why do you save the WorkBook after running your macro? You opened it as read-only.
I can imagine that this is part of the problem.