When I create a 2nd list and set it = to first list then subtract an item from 2nd list, it is removed from both lists?

list blah3 = new list;
list blah4 = new list;

blah3.add (blahness);
blah3.add (blahness);
blah3.add (blahness);
blah3.add (blahness);

blah4 = blah3;

blah4.Remove (blah3[1]);

Debug.Log (Blah3.count);
Debug.Log (Blah4.count);

both will end up having a count of 3 though they start at 4 items and I only should have subtracted from blah4

most recently public build of unity is being used

This line

blah4 = blah3

does not copy the contents of blah3 into blah4, it makes blah4 point to the same thing as blah3 (this is always the case when assigning to a reference types).

So, following that line you no longer have 2 lists; you have one list with 2 pointers to it. Any changes made through one of those pointers will naturally show up if you look at it via the other one.

If you want to make blah4 into a copy of blah3, you can use

blah4 = new List<...>(blah3);

or, to add the contents of blah3 to the end of blah4

blah4.AddRange(blah3)

Following either of the above, changing the contents of one list will not impact on the other.