It sounds like your object design needs a slight adjustment.
What if the types of loot items were also interfaces, so for example, all ammo loot items inherit from IAmmoContainer.
Then you could pass in the IAmmoContainer type to restrict the slot.
public class Quiver : Container, IAmmoContainer
public class ShotPouch : Container, IAmmoContainer
// ...
new Slot(typeof(IAmmoContainer))
EDIT
Based on the discussion in the comments, here's how I'd go about designing this system.
The Loot
class is fine. It represents the base of the loot hierarchy.
Then you define interfaces for the "slots" that an item can occupy. For example:
public class LongSword : Loot, IRightHandItem
public class ShortSword : Loot, IRightHandItem, ILeftHandItem
Then the PlayerInventory class has "slots" as properties, that are restricted to the appropriate type.
public class PlayerInventory
{
public List<IRightHandItem> RightHandSlot { get; private set; }
public List<ILeftHandItem> LeftHandSlot { get; private set; }
// etc...
}