The section.Instance property returns null if the section is nested within groups. This is because you need to pass the path including groups to the GetSection method. E.g. for:
<environment name="Test1" >
<login enabled="true" username="user" password="password"/>
You need to call ConfigurationManager.GetSection("myCompany/Web/UITesting/environment");
For now I don't generate the singleton and just instatiate the sections myself.