If it is always selecting the first price how are you setting the price for the column? Are you using a recordset lookup for the price? If so you will need a second rs on the page to get the accurate price. It would be like the first but it would filter based on the option selected from the select list on the page.
Getting this to work on your catalog page will be a little more difficult. You will essentially have to move the recordset into the loop on this page so that is pulls new fresh results for each item. On top of moving the rs you would also need to ensure that the reference you are using for the item that it is filtered on is updated as well.