Since I could not pass in the Credential, I used the channel factory ClientCredential Users field - my intellisense showed it was {get; set;} so I tried to use it and immediately got an exception declaring the field was readonly (and I said hogwash!). So I ended up with code like this in order to set it:
ClientCredentials credentialBehaviour = NetPipeFactory.Endpoint.Behaviors.Find<ClientCredentials>();
credentialBehaviour.UserName.UserName = credentials.UserName;
credentialBehaviour.UserName.Password = credentials.Password;
credentialBehaviour.Windows.ClientCredential = Credential;