Don't know if your problem is actually caused by the same behaviour I was experiencing in the past, but since no other answers have been posted, I am writting this anyway.
Basically, in my case the problem was that the template (uploaded to the solution gallery in sharepoint) was somehow activating the same feature multiple times. I can only suppose that this issue was caused by a bug in the logic that handles the creation of a site from a template, but it could have also be caused by a (baddly written) stappler that I found on the site.
That said, the first step would be confirming that you ARE actually experiencing the same problem. I would try to edit the feature code to add some sort of log so that you can determine if the feature activation is really performed multiple times. As an alternative, you can also try to obtain/create a version of the template on which the problematic feature has been deactivated: this could help to poinpoint a similar problem. Let me explain: if you find that the content type is created even when the feature is deactive, it would mean that the SharePoint created the ct as a part of the template and not because your feature created it. This would also mean that when the feature get activated it could throw an error because the template is indeed already present.
If your test show that you are actually experiencing a problem related to the behaviour I have described, I fear that the only solution is to modify the template, the feature or both. You want to obtain a situation where you are sure that the feature only get activated one time, or modify the features so that they won't raise an error if a element (ie: your content type) is already present when they get activated. In my case I was lucky: I was creating the site in some codebehind logic, so I was able to deactivate the feature from the template and activate it programmatically only when the creation was completed. I don't know if you can do the same, but it could be a last resort solution before nuking the template from orbit and switching to a definition...
Hope that this can be usefull to you. Also, anyone that has a better understanding of the problem feel free to leave a notice/edit this answer/post another answer.