Excellent, I am glad to hear you solved it. I will point out again that if you had posted the code to the Pattern class, we probably would have been able to save you those 6 days of debugging :)
This exact issue is why I do not use MooseX::Types and probably never will (and why it has not become part of Moose core). While it is nice to have compile time checking of type names, it is at the expense of twisting perl's arm and trying to make types look like barewords. Some magic is just not worth it.