What is the criteria for selecting BNR or BCD as data encoding in ARINC429
The general ARINC guideline for publishing data is to publish both BCD and BNR values when both types are defined. That allows the receiver of the data decide which to use. If only one form exists, then that's the way it's coded. It ultimately comes down to what the ARINC committee decided made the most sense.  

Typically, BNR coded data is used by computational functions -- things that process the data value and expect the greatest precision in the number. They don't really care whether the number is easily readable.  

BCD coded data is typically used by display systems as pilots like to read decimal numbers the numbers can easily be scaled to a readable display, e.g. DME range in NM rounded to the nearest 0.1 NM or bearing to the nearest 1 degree.   

BCD is also used in control panels where the data is discrete decimal data (radio frequencies) and the crew enters a decimal value.