I found this piece of documentation that suggests that we should be able to PUT a new logo in a community. But the documentation also states that it is ignored on input. Before we start intensive troubleshooting, it would help if someone could confirm that we can indeed change the logo programmatically.
Use the web address in the href attribute to obtain an image that represents the community's logo. The following operations are supported: GET Use the web address in the href attribute to obtain the community logo image file. If a logo has not been set, a default image is returned. PUT Use the web address in the href attribute to upload a new community logo image and replace the current one.
Attention: Specify the content type of the image file being sent with the request. For example: "Content-Type: image/jpeg"
This is the source: