If you want your "faceplate" to be used with multiple instances, have a peek at Widgets. it took me some time and head scratching to figure out how to properly set up a Widget, but now I use them quite a bit.
If you create a widget with folder binding enabled, and your tags follow some sort of consistent naming strategy, you can re-use one faceplate for any number of PID loops each with its own tags.
Some caveats for Widgets: If you use the tag properties for things like colrs, units and text within the widget, those data elements might get broken when the "widgetizing" gts done. A workaround is to make more data inputs to the widget to populate elements within the tags that are used by the widget. A simpler way is to uncheck the properties of the items' color, format, label and the fields will be automatically populated with fixed copies of those values from whatever tag you started with. Then you can widgetize and the formatting borrowed from the tag will still be there as constants inside the widget when it is done.
A completely different way to make one page or faceplate that can be used with mutiple instances is to use array tags and have a tag used for the index inside the elements. This means building your tag structure differently, but could end up being better suited to applications that have more than a few instances. The advantage here would be that your faceplate is global. One group of objects or a page that you can tweak that simply share a tag for a pointer to arrays of tags.
With Widgets, if you have three pages (or twenty) that use a copy of the widget, then you decide you want it to have a different text size or move something, you have to go back and update all of them. This could be an advantage if you wanted to be able to have them be individually customized, and even if you want them all uniform, it is very easy to copy and paste and bind the folders to make the changes across a few copies.