I don't mix oyster shell and grit with each other or with their food. I don't feed pork bone. How do they know how much of each to eat if it is all mixed together? I let mine regulate how much of each they eat.
You can put it either in the coop or run, whichever is easiest for you. I put oyster shell in a small cup wired to the side of the run. With mine, a little bit lasts a long time, but they do eventually eat it. Mine free range so they find their own grit.
I would not put it up on the roosts. It is not that available up there for all of them.
If some of yours are spending a lot of time on the roosts during the day and with the pecking you mentioned, I suspect some are being bullied and they are spending most of the time on the roost to get away from the bullies. Young chickens especially will do that to stay away from the older chickens that bully them. Hens will sometimes do that to stay away from an over-eager rooster. Them being too crowded can cause that behavior. And sometime you just have a bully, no matter how you are set up or how much space they have. I don't know the particulars of your situation, how you are set up, or how much room you have, but you might want to set up two feeding and watering stations, one in the coop and one on the run maybe, to give the ones being bullied a better chance to eat and drink. If it were not for the pecking you mentioned, I'd also say that that some just like to chill out on the roosts, enjoying the company of their friends.
Good luck!!