What is the default call protocol the SX20 is using? I'd amuse it would be SIP, because you only saw the SIP address in the directory.
If you want all phone book entries to show regardless of the endpoint's default call protocol, you can set "Route Phone Book entries" to No in Administrative Tools > Configuration > General Settings.
Yes is the default setting, which means that endpoints will only display addresses that they are capable of dialling. For example, on an H.323-only endpoint, ISDN numbers and SIP addresses will not be displayed.
No means that the endpoints will display all addresses and numbers in the phone book regardless of their dialling capabilities.
Make sure that each endpoint is allowed to dial out using H323 and SIP under Navigator > Systems > Edit Settings.
Also, instead of a manual phone book source, why don't you have the phone book pull from the list of endpoints in a folder using the "Cisco TMS Endpoints" as a phone book source. It will pull contain all the calling methods for the endpoints in whatever folder you specify. Would be easier to manage than manual phone book sources.