Thermocouples are nothing but two (or more) metals or alloys in contact, so the inherent variations must be metallurgical in nature. Metallurgical effects include the alloys, how evenly distributed they are during the drawing of the wire, and effects such as annealing and cold-working.
Of course the construction of a thermocouple can lead to differing measurements depending on way the thermocouple is made or mounted and how heat flows from the object being measured down (or up) the leads.
Extension wire is not always made from the same type of metals, or made to the same specifications, so the entire thermocouple assembly may show errors if the transition to extension leadwire is far from room temperature. The main reason for using different materials is to save money and allow the use of robust conductors, especially with precious metal thermocouple types (most commonly types S, R, B but gold has been used as well).