Então eu finalmente descobri o que eu estava fazendo de errado. O código fonte do mangusto aplica todos os métodos definidos dentro de
schema.methods
para o protótipo do modelo no ponto em que o esquema do modelo é definido para o nome do modelo (mongoose.model("modelname", modelSchema)
). Portanto, você deve definir todos os métodos, o que adiciona esses métodos ao objeto de método da instância Schema, antes de definir o modelo para seu nome. Eu estava definindo o modelo antes de definir os métodos. Problema resolvido.