La razón por la que no funcionaba era porque estaba usando un método de flecha. Tuve que convertirlo en una función normal:
userSchema.methods.setPassword = function (password) {
La razón es porque las funciones de flecha tratan this
diferente de las funciones regulares. Consulte lo siguiente para obtener más detalles:
http://exploringjs.com/es6/ch_arrow-functions.html