I have defined login element as follows:
factory MyLogin() => document.createElement("form", "my-login");
Then you can just call:
MyLogin login = new MyLogin();
This works for me.
You should instantiate it as
Element y = new Element.tag('form', 'my-login');
What seems not to work is
MyLogin y = new Element.tag('form', 'my-login');
this should result in the HTML for the inserted element
<form is="my-login"></form>