O limite do parâmetro de tipo genérico para BSONValue em ValueMapWriter definição não está correta. Se você mudar a linha
implicit def ValueMapWriter[V](implicit vw: BSONWriter[V, BSONValue]): BSONDocumentWriter[Map[String, V]] =
com
implicit def ValueMapWriter[V](implicit vw: BSONWriter[V, _ <: BSONValue]): BSONDocumentWriter[Map[String, V]] =
então ele deve resolver o escritor implícito para Int.
BTW simple-reactivemongo já faz isso. E também estou planejando adicionar essa funcionalidade às ReactiveMongo Extensions .