Если отдебажить момент сразу после двойного клика в закрепленном средстве поиска, то, в принципе, все становится вполне понятным. Обработчик вытаскивает данные средства поиска, потом выбирает сфокусированное поле при помощи CALL 'DY_GET_FOCUS', затем выставляет занчения полей CALL 'DY_GET_SET_FIELD_VALUE'.
У меня проблема возникла именно при вызове CALL 'DY_GET_FOCUS', по всей видимости OCX компонент и грид в CL_GUI_DIALOG_CONTAINER как-то по-разному взаимодействуют с окном, которое их породило. В первом случае CALL 'DY_GET_FOCUS' возвращает корректные данные, во втором SY-SUBRC = 2 и никаких данных. В результате этого мне удалось создать немодальное средство поиска, которое может прописывать значения только в то поле, из которого его вызвали

(CALL 'DY_GET_SET_FIELD_VALUE' - прекрасно работает).
Из-за описанной проблемы решили сделать модальное средство поиска с сохранением позиции в гриде между вызовами - скорость ввода данных выше, чем в стандартном, а программирование по сути тривиально.