The easier way is to create a local table with the same structure of res sheet or the sheet you use to display the result.
Every time a user select a race the app does this:
Delete all rows in the local table
loop through all the rows in the sheet searching for the selected race.
copy the matching rows to the local table
switch to the screen to display results which has a DVL bound to the local table
If still doesn’t work with you then move both the initialization and the list to the same screen.
Sometimes the variables are not initialized properly when using navigators but not in all platforms. So if it works in the same screen then you should still see speed improvements.