I feel like I am at a point of over-thinking what I am doing.
This a common problem for me also, and one of the main reasons I always try to follow KISS (Keep It Simple & Stupid) methodology.
Assuming I understand your problem correctly, you are trying to create links between specific animation frames for cards that match. You will probably need to store these relationships in a metadata object somewhere else (maybe a JSON array/object?) and then reference that object whenever you are trying to determine matches.
Something like:
[
[0,2],[1,4],[6,3],... etc]
where the numbers in this array of arrays are the animation frames in question.
This is probably not organized well. Maybe you could even do a table like:
0 1 2 3 4 5 6 7 ...
0 x x
1
2
3
4
5
6
7
.
.
.
then have some character that indicates whether the two animation frame indices are related. This would also prevent overlaps in your data.
You might even be able to make this work in a simple 2-D construct array where the array indices are corollaries for the animation frame indices.