Solution
You added too much code
a = [3, 6, 7, 9, 11, 14, 15]
b = [2, 6, 7, 10, 12, 15]
c = [x for x in a if x not in b]
This gives the following result just as you wanted!!
print(c)
# [3, 9, 11, 14]
Why Repeated 3 times?
Well look at the orginal data again
original = [3, 6, 7, 9, 11, 14, 15]
# Index 0 1 2 3 4 5 6
# ✓ x x ✓ ✓ ✓ x
second = [2, 6, 7, 10, 12, 15]
# 0 1 2 3 4 5
# ✓ x x ✓ ✓ x
You get 4 unique numbers [3, 9, 11, 14] because there are 4 numbers in original that are not in the second list.
You get 3 repeated numbers because there are 3 numbers in second that are not in the orginal list.
Testing
You can test this idea by expanding the lists
original = [3, 6, 7, 9, 11, 14, 15]
second = [2, 6, 7, 10, 12, 15, 100, 200]
# print(c)
# [3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 14, 14, 14, 14, 14]
Now we have 5 unique values in the second list, so it's repeated 5 times now!