There is a discussion here about permissions and setting/reading them programatically. The key point to remember is that you an only set permissions on the EntityTokens each elements in the Console represents. This means that its not data itself, but the visual representation of it, so to speak, that has a permission. If the same data is exposed in different places in the Console chances are that that same instance of a data has different EntityTokens and therefor different permissions.
https://compositec1.codeplex.com/discussions/468562
https://compositec1.codeplex.com/discussions/468562