Cloned widget does not work if the original widget uses Angular ng-template, even though nothing has changed in the widget.
One of the causes of this issue is that even though the Angular ng-templates are cloned, their references are not changed in the cloned widget.
To fix the issue, change the name of the template reference in the widget.
For example, the header menu widget uses the Angular ng-template "menuTemplate". If you clone the header menu widget, you must also clone the menuTemplate and give the clone a unique name. When you open the clone of the header menu widget, you have to fix all the references of "menuTemplate" to the new name of the cloned template.