Loop=previous_total does not account for If statement

<Get loop=previous_total /> will always reflect the total number of posts in the loop, even if those posts are being hidden with logic. You could either modify the loop to also filter by your custom field so that the number of posts displayed matches the number of posts returned by the loop, or you can get the total number of posts by incrementing a variable inside your <If> rule.

<Loop acf_relationship=client_linked_spids custom_field=type custom_field_value=wspid>
</Loop>
<div class="wspid-circle">
  <Get loop=previous_total />
</div>

or

<Set loopTotal>0</Set>
<Loop acf_relationship=client_linked_spids>
    <If field=type value="wspid">
        <Set loopTotal><Math><Get loopTotal /> + 1</Math></Set>
    </If>
</Loop>
<div class="wspid-circle">
  <Get loopTotal />
</div>

Let me know if that helps!