Amigo,
Não sei se entendi bem seu problema mas vamos lá.
1º Criando Classe e preenchendo os objetos.
Você pode criar um Classe Acessório e um outra Produto, e na classe produto cria uma propriedade que é uma lista de Acessórios, ai você instancia o Produto e preenche no Form1, os acessórios do Form 2 serão preenchidos na propriedade acessórios de
produto.
public class Acessorios
{
public string Nome { get; set; }
public string Descricao { get; set; }
}
public class Produto
{
public int idProduto { get; set; }
public string Nome { get; set; }
public string Descricao { get; set; }
public List<Acessorios> acessorios { get; set; }
}
2º Persistindo no banco.
Para gravar no banco você pode criar um método e passar como parâmetro o seu objeto produto, grave o produto e pegue o seu Id, faça um laço de repetição na propriedade acessórios, e grave os acessórios passando o Id retornado do produto.
Não sei qual é o banco que você esta usando e como esta gravando, se não entendeu a ideia ou precisar de algum exemplo pode postar aqui e se possível mande o seu código de como está gravando no banco.
Importante: Como você esta gravando em duas tabelas é importante usar transação.
http://msdn.microsoft.com/pt-br/library/2k2hy99x(v=vs.80).aspx
Boa Sorte.
Saulo.