How can we access only one of multiple financial types in a single contribution?
Check out Extended Reports Extension https://civicrm.org/extensions/extended-reports/24  

Here is a quick rundown of how Civi handles Financial Types.
The Civi Core  native reports will only pull reports for Financial Types connected with your Price Set Default Financial Type. Which is stored in table civicrm_contribution.financial_type_id.
The Price Field Financial Type is actually called Line Items in the background. You have to use Extended Reports to be able to pull reports based on Line Item (civicrm_line_item.financial_type_id).

When creating a Message Template use tokens for the civicrm_line_item table Ie.{$lineitem.label} {$lineitem.financial_type_id}

You might have/want to create another Financial Type similar to Donation (maybe Contribution). Then use Donation for the Price Set Default Financial Type and Contribution for the Price Field Financial Type. The just helps you know which one you are seeing in reports and when Pulling Reports, you are sure not to get mixed data (Donations and Processing Fees) like you are seeing now.