Uso de datos adicionales en la tabla intermedia con NHibernate

Estoy trabajando en un proyecto que se utiliza para ingresar información sobre un producto en un documento. Una sección tiene un formulario que se puede completar tantas veces como sea necesario para un producto en particular. La información en este formulario está disponible para ser compartida en múltiples documentos relacionados. Una situación típica de muchos a muchos. La diferencia es que, en la tabla intermedia, quiero almacenar información específica para esa entrada de formulario para ese documento específico.

Aquí hay algunas definiciones de tabla para ilustrar el punto:

Document(
  Id int identity(1,1),
  Name nvarchar(256)
)

Form(
  Id int identity(1,1),
  FormData nvarchar(max)
)

DocumentForms(
  DocumentId int,
  FormId int,
  DocumentFormNumber varchar(64)
)

Y algunas clases:

public class Document{
  public int Id { get; protected set; }
  protected IList<Form> Forms { get; set; }
}

public class Form {
  public int Id { get; protected set; }
  public string DocumentFormNumber { get; set; }
  public string FormData { get; set; }
}

¿Hay alguna manera de crear un mapeo que admita la lectura de datos adicionales al leer formularios como parte de la relación de muchos a muchos con el documento? ¿Necesito usar un procedimiento almacenado al cargar datos con la relación de muchos a muchos? Todavía necesito poder cargar los objetos del Formulario sin que sean parte de un documento, pero una vez que se agregan al documento, necesito que tengan un número que se genera en base a algunas reglas simples. Pero ese número es obviamente un documento específico. Entonces, si bien el próximo documento puede usar los mismos datos del Formulario, necesita un nuevo número.

¿Alguna sugerencia sobre cómo se puede lograr esto?