*applause*

Interesting approach! The CFG looks fine. But the number of 1s should not be greater than the 0s. A 0 should have a corresponding 1 before it in the stack. The stack itself is empty once the permutation is formed.
I've not checked the validity of the final answer, but the approach looks correct though..