How to avoid custom module hook_node_presave being overriden by a profile module node_presave
The order of a module's hook invocation is determined by its weight. In Drupal 7 this set in the weight column in the system table.

This can be updated through SQL query by setting your module's weight to the heaviest (last) value. 

# Update with the appropriate values for your install
drush sqlq "UPDATE {system} SET weight = [your_preferred_weight] WHERE type = 'module' AND name = '[your_module_name]"'


Or using a module like Modules weight if you need a UI.

See the Drupal.org documentation for more info..