That still does not explain the -0.20094658 transaction.
Yes, it does.
You spent 0.20094658 BTC that had previously been received in a single output at 1PKjKRkejGujQjy9fFrcdddH9Apg5jL3G6. You sent 0.03656902 BTC of it to CoinGig at 1CEiUuoqdMPFXRt8kE4j9y2kB7D1McZQRA. The Bitcoin-Qt wallet sent the 0.16437756 BTC change from that transaction back into the wallet at the new change address that it created: 1DNwtvnWhMgFt8HHDc3v54mu6YyTs53DTU
You didn't import the private key of the 1DNwtvnWhMgFt8HHDc3v54mu6YyTs53DTU address into MultiBit, so MultiBit doesn't know that this address was in the Bitcoin-Qt wallet, or that this output was therefore received in the Bitcoin-Qt wallet.
It is a really bad idea to be messing around with private keys if you don't understand what you are doing. You should have just created a new MultiBit wallet, and sent your entire balance from Bitcoin-Qt to MultiBit.
And I did copy all of the public keys since I only had 2 addresses.
No. You had 2 receiving addresses, but you also have a "change" address EVERY TIME you send a transaction. As I stated in my earlier post, you didn't import the private keys of any of these change addresses into MultiBit.
If you click on the blockchain link, you can see the first 0.03656902 BTC transaction,
however the 2nd is 0.16437756 BTC (supposed to be the 0.1504, see screenshot) which adds up to -0.20094658 BTC, but then how come Bitcoin qt reports something else.
The 0.1504 is a different transaction. In that transaction your wallet spent the 0.16437756 BTC change that it had received from the earlier transaction. It sent 0.1499 BTC of that to 17RtUzBSrYZGUXEkYYLNzMwZ4YL6kTZBVX, sent the 0.01397756 BTC of change back into the Bitcoin-Qt wallet at address 1PkBEv357g6sJ4dCbpMF2tPqqGfNJpPNTV (which you also failed to import into MultiBit), and paid a 0.0005 BTC fee.
Also I'm not clear on what you what me to do with listunspent, since it does not show private keys?
Depending on what version of Bitcoin-Qt you are running, listunspent will either tell you which addresses are currently holding value in your wallet and the transactionID where that value was received, or it will tell you only the transactionID.
If it provides the address, then you can run dumpprivkey for each of those addresses, then you can import each of those addresses into MultiBit. That way MultiBit will at least know about all the value that is currently under the control of Bitcoin-Qt. You may not have every possible transaction, but at least the final balance will be correct.
If it only provides transactionIDs, then you will need to look up each transaction, and determine which address is the change address. Then you can run dumpprivkey on each of those to get the addresses that need to be imported into MultiBit.