If I understand correctly, your question is more about assigning a unique identifier to each cluster of points rather than an issue with doing the join. You can use the following methodology to assign a unique ID (that will work with model builder).
In your buffer layer, add a field (like bufferID or groupID) of type LONG. Right click the new field and select Field Calculator. In the field calculator window, select the Python Parser, and check the "Show Codeblock". Paste the following code into the "Pre-Logic Script Code" window:
pStart = 1
pInterval = 1
if (rec == 0):
rec = pStart
rec += pInterval
Below, in your field expression window (it'll say field =) type
autoIncrement(). This will assign each row in the buffer layer an incremental ID that you can join to your individual point feature classes and subsequently use to relate points to one another between datasets.
The field calculator window should look like this:
EDIT: If you're doing this in model builder, I believe you'll have to specify "PYTHON_9.3" for the parser in the field calculator tool window.