Found out what is causing it to change the status on existing calls but still unsure as to how to stop it.
When a call is picked up by a user in the ring group it sends out a hangup to all of those including the one that was on the phone before the ring group called in.
So it goes this way....
User1 is already on the phone. The ring group calls all phone on the ring group. Users 1-5 User2 picks up call in from ring group. Asterisk sends hangup command for Users 1-5 so according to Spark User1 is now available when he should still read "on Phone"