Initially, you could use Cast on the entire collection:
foreach (var item in Model.Items.Cast<MyCustomObject>()){}
If your types will all inherit from a base type, say MyCustomObject, then your model should specify this, e.g.
public class MyViewModel<T> where T : MyCustomObject, new()
{
public IEnumerable<T> Items { get; set; }
}
You would need to ensure that any types you wished to add to your items collection inherited from the base MyCustomObject
type