If you want to keep using the same marker you must change your code as you're always creating a new google.maps.marker in your function. You may try it like this:
var myPermanentMarker = new google.maps.Marker({
map: map,
draggable: true
});
google.maps.event.addListener(myPermanentMarker , 'drag', function(event){
document.getElementById('<%= txtLatitude.ClientID %>').value = myPermanentMarker.getPosition().lat();
document.getElementById('<%= txtLongitude.ClientID %>').value = myPermanentMarker.getPosition().lng();
document.getElementById('<%= HFLat.ClientID %>').value = myPermanentMarker.getPosition().lat();
document.getElementById('<%= HFLng.ClientID %>').value = myPermanentMarker.getPosition().lng();
});
function codeAddress() {
var address = document.getElementById("address").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK)
{
myPermanentMarker.position = results[0].geometry.location;
map.setCenter(results[0].geometry.location);
}
else
{
alert("Geocode was not successful for the following reason: " + status);
}
});