Receiving "The SELECT permission was denied on the object" even though it's been granted
I'm not sure here, but I'm going to go out on a limb. I think your issue might be with your DENY CONTROL
record. See here about half way down the page:
Denying CONTROL permission on a database implicitly denies CONNECT permission on the database. A principal that is denied CONTROL permission on a database will not be able to connect to that database.
I realize that example is for a database, but take it one more granual level. A DENY CONTROL
on a table will deny all privileges on it, I'm guessing. Do a REVOKE CONTROL
to get rid of that and see if that fixes your issue.
If so, you'll have to place the user in a database role or deny them the explicit privileges against the table.