I may be misunderstanding what you're doing, but it looks like you're binding to the same object, so the fields are going to display the same value. Here's a very basic example that might help. I duplicate what it sounds like you're experiencing and another way to set it up.
@page "/"
@if(model != null)
{
<EditForm Model="model">
<h2>Binding to same object in model</h2>
@for (var i = 0; i < 5; i++)
{
<p><InputText @bind-Value="model.Foo"></InputText></p>
}
<h2>Binding to list of objects</h2>
@foreach (var item in model.BazList)
{
<p><InputText @bind-Value="item.Foobar"></InputText></p>
}
</EditForm>
}
@code {
SomeModel model = new SomeModel()
{
BazList = new List<SomeSubModel>()
{
new SomeSubModel { Foobar = "" },
new SomeSubModel { Foobar = "" },
new SomeSubModel { Foobar = "" },
}
};
public class SomeModel
{
public string Foo { get; set; }
public string Bar { get; set; }
public List<SomeSubModel> BazList { get; set; }
}
public class SomeSubModel
{
public string Foobar { get; set; }
}
}