What you have done is totally sufficient for your users to run those procedures. But even more important things about procedures is that the owners of the procedures have sufficient privileges themself! The owner of the procedure has to:
a) be an owner of the all objects referenced by a procedure
b) has all the neccessery privileges on the referenced objects from other schemas granted *directly* to them, not granted through roles.
ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?