Here's a bit of background information to help you understand how Sitecore ribbons are structured in the core database:
1. A ribbon item in Sitecore references a strip. Sitecore stores all of its default ribbons at /sitecore/content/Applications/Content Editor/Ribbons/Ribbons/Default.
2. A strip item contains one or more chunks. Strips are stored at /sitecore/content/Applications/Content Editor/Ribbons/Strips in the core database.
3. A chunk contains one or more buttons. Chunks are stored at /sitecore/content/Applications/Content Editor/Ribbons/Chunks in the core database. Buttons are stored as children of the chunk to which they belong.
To open up the Change button to our content authors, we had to first provide read access to the Template chunk. In our case, we didn't want to provide access to the Edit button so we blocked the permission from passing to the chunk's descendants as per the screenshot below.
We then explicitly granted read access to the Change button.
With this simple configuration we were able to assign our new role to the content authors to grant access to the change template functionality. You can use these same steps to open up the other ribbons and buttons in Sitecore as the need arises.