Zedgraph has a definition as follows:
Ourcompany.PointPairLists points = value;
When you "code the exact same thing" you change the namespace so you have an object that is actually:
Mycompany.PointPairLists;
Unless you explicitely inherit Ourcompany.PointPairLists you will never be able to cast to the object type that they are requesting.
The product probably has a domain uniqueness that using their collections is the only choice. You may also find, if the company is sharp, that they have coded the objects so that they are not inheritable which stops you from encapsulating them as well.