Add custom properties in the template dialog, it's almost as same as extending the core component. You need to extend the core page component.
Once you have your own page component then create a template-type where the sling:resourceType will be your new page component. After that using this template-type create your template.
If you don't add the custom properties then it's a fault of your page component dialog XML.
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:primaryType="nt:unstructured"
jcr:title="Page"
sling:resourceType="cq/gui/components/authoring/dialog"
extraClientlibs="[cq.common.wcm,core.wcm.components.page.v3.editor,cq.wcm.msm.properties,granite.contexthub.configuration,cq.siteadmin.admin.properties,core.wcm.components.image.v3.editor]"
helpPath="https://www.adobe.com/go/aem_cmp_page_v3"
mode="edit"
trackingFeature="core-components:page:v3">
<content
granite:class="cq-dialog-content-page"
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/container">
<items jcr:primaryType="nt:unstructured">
<tabs
granite:class="cq-siteadmin-admin-properties-tabs"
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/tabs"
size="L">
<items jcr:primaryType="nt:unstructured">
<!-- Basic Tab -->
<!-- Advance Tab -->
<!-- SEO Tab -->
</items>
</tabs>
</items>
</content>
</jcr:root>You need to add an override code of XML to add the custom properties and your data-sly-test will work.
These all are the generic information. Let me know if you are looking for any specific information.