First, better inherit interface rather than a list
itself.
... : Dictionary<TKey, IList<TValue>>
Second, your Add
mthod calling seems to call itself. Try calling base' method.
MyBase.Add(key, New List(Of TValue)())
Third, why don't you just use Lookup<,>
? Its so simple to group elements by keys.