Here is my little script to do what you are asking for. Tested on a couple of tracks on my iTunes 11 under Snow Leopard and it run just fine.
tell application "iTunes" set myMusicLib to some playlist whose special kind is Music log "Debug: Count of library items: " & (count of tracks of myMusicLib) set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256) log "Debug: Count hi bit rate tracks: " & (count of myNewTracks) repeat with newTrack in myNewTracks -- Try to match it with a low bit rate track set trackName to name of newTrack set albumName to album of newTrack --log "Debug: Hi Rate Track Name: " & (get name of newTrack) --log "Debug: Rate: " & (get bit rate of newTrack) set oldTracks to {} try set oldTracks to (get tracks in myMusicLib xc2xac whose bit rate is less than 256 xc2xac and name is trackName xc2xac and album is albumName) end try if (count of oldTracks) is 1 then log "Debug: Dup Name: " & trackName log "Debug: BitRate: " & (get bit rate of item 1 of oldTracks) set oldPlayCount to (get played count of item 1 of oldTracks) set played count of newTrack to oldPlayCount log "Debug: Reset Play Count to: " & oldPlayCount set oldRating to (get rating of item 1 of oldTracks) set rating of newTrack to oldRating log "Debug: Reset rating to: " & oldRating end if if (count of oldTracks) is greater than 1 then log "ERROR: Found more than 1 duplicate. Not doing anything." end if end repeat end tell
EDIT:
You can get a glimpse of what is going on by looking at the output it sents to the Events pane. Just run it inside the Applescript Editor and click on the Events & Replies buttons to unhighlight them.

EDIT2:
To limit the script you can change the line
set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256)
to
set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256 and Album is "My Album Name")