This is what has been successful on my site:
To get teachers (but not students) to view some blocks on our front page, we created a global teacher role that is a system wide role. Then in the permissions of the block on the front page, we have removed the 'authenticated user' (anyone logged in) from the view permission, but have added the manager and global teacher roles.
This is a Guess:
I'm not sure how the above would translate to the Admin block (you'd still want to have 'student' there so when they are enrolled in the courses, they can see the block in the courses)... A guess: remove the Admin block from your front page and re-add it so it only displays at the front page level (removing the authenticated users from the view permission), then go into each category and add the admin block into each category so it also appears in the courses within that category...