We mechanically generate all our CRUD procedures, that helps with name changes.
You might be able to use SYSDEPENDS to locate procedures that reference a particular object.
We use unique names for all columns in the database prefixing each column's name with a mnemonic that represents the table - so a CUSTOMER table might have columns cust_ID, cust_Name, cust_Address ... - that makes it easier to guarantee finding all instances of an object's name. We also use the column name for any temporary @variables referencing that column - so @cust_ID_Start and @cust_ID_End for variables used in a Stored Procedure for a report range. They get found too ...
We have each Sproc and Trigger in a separate text file (and in a version control system) and it is then easy to do a global find & replace.