This issue was occurring with 12.4 drivers. I updated to 13.4 and gl_TessLevelOuter can now be correctly read in the Tessellation Evaluation shader, except that now the gl_TessLevelOuter appear to be swapped (in both control and evaluation shaders). See this thread for details.
I'm glad that things work better on newer drivers. If you have any more issues, feel free to keep posting here.
I did reply to the other thread. The apparently swapped tessellation factors are due to a specification bug in the older specification. As mentioned in the other thread, the bug has been fixed in recent versions of the specification and our drivers match the current wording (as I believe do those from other vendors).