سلام

داخل مدل نباید متد تعریف کنید. هر کاری که لازمه با مدل ها انجام بگیره توی ViewModel انجام بدید. میتونید Bussines Logic رو داخل ViewModel قرار بدید یا اینکه یک لایه جدا تعریف کنید (مثلا Service) و از اون داخل ViewModel استفاده کنید. اما اجباری به جدا کردن BL از VM وجود نداره.
برای کار با دیتابیس شما یک لایه (مثلا Repository) ایجاد کنید و ازش تو VM (یا اگر لایه BL جداگانه دارید، در BL) استفاده کنید. هر چند اگر مستقیم از داخل VM هم با Entity Framework کار کنید، MVVM رو نقض نکردید. اما جدا کردنش طراحی شما رو بهتر میکنه.

سوال دومتون در مورد فیلتر کردن اینا رو درست متوجه نشدم لطفا بیشتر توضیح بدید.

در مورد سوال آخرتون هم باید بگم که اصولی بخواید کار کنید باید طراحی کلاس ها و دیاگرام ها و ارتباطاتشون رو باید اصلاح کنید بعد برید سراغ پیاده سازی هاشون.