I can’t choose the currency when adding a transaction

Transactions use the default currency, you can set it in Settings, tap the cob icon on the tab bar and choose you default currency.

The value displayed in my portfolio doesn’t reflect what I see on the exchange

Bitfolio uses Coingecko API service to get the price of the coins.
The price fromCoingecko is usually an average of the current prices among all exchanges, so it will be different from your specific exchange.

How does sale and sell transactions impact calculations?

When adding a sale/sell transaction, the percentage gain calculate would be based on the total average price paid for the coin.
Example: Bought 1 BTC for 100 (I wish…), sold 0.50 when value of 1 BTC was 200 with a sale price of 100, total price paid calculated will be 50.
This will not be the correct total price paid but based on the average paid for the amount of crypto bought.

Why I cannot delete a buy transaction, it says something about being linked?

If you added an exchange transaction, it is not possible to remove the buy transaction from which the coins where then subsequentially exchanged.
You have to first remove the exchange transaction and then you will be able to remove the buy transaction.

The total percentage in the Portoflio screen doesn’t add up to the single coin percentage in the Assets screen

Exchange and sell transactions can impact calculations of percentage.

What is iCloud? Is it safe? Can others see my transaction?

iCloud is a service provided by Apple. When enabled, it synchronize your tickers and transactions among your iOS devices. It’s very safe and nobody except you can see your transactions in iCloud.
Safety and privacy are guaranteed by Apple, nobody not even the developers can access your private database, ever.