querying sys.database_principals accross a linked server
sys.database_principals and sys.server_principals are protected views.

From the MSDN page on sys.database_principals:


  Any user can see their own user name, the system users, and the fixed database roles. To see other users, requires ALTER ANY USER, or a permission on the user. To see user-defined roles, requires ALTER ANY ROLE, or membership in the role. 


You need to ensure the login used by the linked server has at least the ALTER ANY USER or ALTER ANY ROLE privilege in order to see the other principals.