You could calculate the barycentric coordinates of the point you are interested in and then use the barycentric coordinates to weight the vertex values.
The barycentric coordinates of a point P for a triangle (v0, v1, v2) have the following relationship:
P = a0*v0 + a1*v1 + a2*v2
where (a0,a1,a2) are scalar weights for the vertices. For colors, etc just replace (v0,v1,v2) with (c0,c1,c2) to get the interpolated value at that point.
This even works for points outside of the triangle (which will produce negative weights), so it will handle your bounding box corners.