Let's first try the simlest approach. Have you tried the standard Popup LOV item type, and combine this information into one column? You could set it to 'Fetch = No Fetch' to avoid immediately fetching rows when the popup opens, requiring the user to enter a search term, which could help with performance.
It would look something like this...
I used the emp table in place of you person table, but the idea is the same, have a Popup LOV defining an LOV that displays both the ID and NAME (and returns the ID). I set the Popup LOV to 'Not enterable' as you don't want to allow entering new people here, and because the ID and NAME are both in the display column, they can both be searched for in the popup. Would that work for you?
Also, regarding your 'the user has the ability to easily click in the select box of multiple records to perform other functions on those records...', John Snyders has a good example of this in the IG cookbook app, see page 9 'Update Selection'.
Hope that helps.