Let Bob's number $= B$, Charlie's number $= C$, the lower of the two chosen numbers $= l$, and the higher of the two chosen numbers $= h$. Further, let $d = h - l$.
Once Bob or Charlie know with certainty which of $l$ and $h$ is the summation of their numbers (here notated the 'key') it is trivial to calculate the other number.
The first 'round' is trivial; if $B >= l$ then Bob solves, and if $C >= l$ then Charlie solves. (Their own number being GTE to $l$ tells them the key must be $h$, and therefore the opposing number is $h$ less their own.)
We then begin in earnest with Bob.
Bob knows that $B < l, C < l$ from above. If also $B < d$, then $B+C < d+l$, or $B+C<h$. Therefore the key is $l$. Else he passes.
Charlie now knows that $B >= d$. If also $C + d > l$, it follows that the sum must be greater than $l$ and therefore the key is $h$. Else he passes.
Bob now knows that $C < l - d$. Therefore, if $B < 2d$, then $B+C < l - d + 2d$, or $B+C < h$, and Bob then knows the key is $l$. Else he passes.
Charlie now knows that $B > 2d$. If also $C + 2d > l$, it follows that the sum is greater than $l$ and therefore the key is $h$. Else he passes.
From this we may induct a generalization.
After the trivial round, let $n$ be the round number, starting with 1. if $B < nd$, Bob knows the key is $l$. Otherwise, if $C + nd > l$, Charlie knows that the key is $h$. Otherwise, proceed to the next round.
Note that we can rewrite those conditions as $n > B/d$ (for Bob) and $n > (l - C)/d$ (for Charlie). We can therefore assert that Bob will solve in $ceil(B/d)$ rounds, and Charlie in $ceil((l-C)/d)$ rounds; trivially, the lesser of the two will prevail.
In all cases the number is finite and therefore a halting state exists.