Hello again Francisco,
Thank you for sharing your OML file.
Your Save screen action from Compras_Itensdacompra_PopupEditor seems to be fine, since you're passing the entire record and the fields are correctly bound to the attributes.
I believe your problem is in CompraDetail screen. In your table column Produto, you're passing this value:

But the Aggregate GetProdutoes is just retrieving all the rows from Produtos entity (with no conditions):

So GetProdutoes.List.Current record will always be the same. That's why you see the same value in the screen. You're probably saving the correct values in the database but displaying them incorrectly.
You need to add Produtos entity to your GetItensdacomprasByComprasId Aggregate (this is the query that you use to populate the table):

Because you want to display the respective Produto for each Itemdacompra. So you need to join these 2 entities by ProdutosId.
(Also you don't need to have GetProdutoes Aggregate after these changes)
Back to the expression in the table column, you need to define it as the resulting value from the Aggregate:

Please refer to attached OML file with these changes.
Let us know if it solved your problem! :)
Kind regards,
Rui Barradas