Thanks for the reply. I tried both the above solutions. The first one was throwing an exception of type conversion. The second on return a null object. Here is what i ended up doing which worked.
AutomationElement aeCustomContainer = window.GetElement(SearchCriteria.ByAutomationId("dateOfBirth"));
//here i am just getting the first Label from the container but i can access all others too by AutomationElement.NameProperty, or AutomationIdProperty
AutomationElement ae = aeCustomContainer.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Text));
Label = new Label(ae, window.ActionListener);
So i am using Windows Automation framework and then converting the types back to white to work with them easily. Is this a good way to do it? or there is a better way of doing it?