TinDifference calculates the volumetric difference between two TINs. The second TIN is subtracted from the first. The calculation is performed in the vector domain. The result is an output polygon feature class divided into areas where the first TIN surface is above the second, below the second, and coincident with the second. Each area is attributed with the knowledge as to its "above", "below", or "same" status as well as the cubic area between the TINs for its location. Areas where the TINs are coincident, tagged as "same", will have a volume of 0.0.
TinDifference works by calculating the difference in height between measurements of the two input surfaces. All the nodes and breaklines from the first input TIN are compared against the surface of the second TIN (i.e. the difference between their height and the interpolated values for them off the other surface). The same is repeated in the inverse, with the measurements of the second TIN being compared against the surface of the first. All nodes and breaklines, from both TINs, with their z values set to the height difference, are used to create a difference TIN. The zero contours on this difference surface represent the intersection between the two surfaces. The zero contours are added as breaklines to the difference TIN and the resulting triangles are classified into those that are above, below, or equal to 0.0. Contiguous triangles that have the same classification are grouped into polygons, with their volumetric contributions summed, and added to the output polygon feature class.
This tool uses an approach that is based on height differentials between measurements and surfaces. It is not based on triangle to triangle intersection. Therefore, while the result is representative of the difference between both surfaces there may be discrepancies if you attempt to compare them triangle by triangle with the input TINs.