You're basically there already. I don't know why the 2.0 wallet isn't importing your funds, and giving that TypeError.
My best guess right now would be to rescan your wallet in 0.9.3c, then re-export the keys, and try importing them again.
I found old documentation by using archive.org that helped me. Here is the info (converted to GitHub markdown):
https://gist.github.com/flux627/f16ad0daf02c3fe7fe58ce9d39b753ee
In my case, I had to do everything here except the last step (wallet_recover_transaction)
I tried to follow but am very confused using the console. I have never used any console before yesterday.
When I tried to "rescan" I got the OK but when I entered "getinfo" I did not get The relevant return line is "wallet_scan_progress". I got this:
{
"blockchain_head_block_num": 1356229,
"blockchain_head_block_age": "2 years 4 months old",
"blockchain_head_block_timestamp": "2014-12-26T05:30:20",
"blockchain_head_block_id": "c0187a684f9a5348a938b726ab74a5715fc09890",
"blockchain_average_delegate_participation": "0.00 %",
"blockchain_share_supply": "2,498,586,471.66562 BTS",
"blockchain_blocks_left_in_round": 100,
"blockchain_next_round_time": "at least 17 minutes in the future",
"blockchain_next_round_timestamp": "2017-05-03T14:58:30",
"blockchain_random_seed": "7751a26e03131e6ebed7a8bd28348f11c9df89d5",
"client_data_dir": "C:/Users/My Name/AppData/Roaming/BitShares",
"client_version": "0.9.3c",
"network_num_connections": 0,
"network_num_connections_max": 200,
"network_chain_downloader_running": false,
"network_chain_downloader_blocks_remaining": null,
"ntp_time": "2017-05-03T14:41:52",
"ntp_time_error": "0.654131000000",
"wallet_open": true,
"wallet_unlocked": true,
"wallet_unlocked_until": "12 days in the future",
"wallet_unlocked_until_timestamp": "2017-05-15T04:25:57",
"wallet_last_scanned_block_timestamp": "2014-08-11T01:39:10",
"wallet_scan_progress": "3.51 %",
"wallet_block_production_enabled": false,
"wallet_next_block_production_time": null,
"wallet_next_block_production_timestamp": null
}
I also noted there is this function: wallet_rescan_blockchain [start_block_num] [limit] [scan_in_background]. I don't know if I need to use that instead of just "rescan" but I don't know what parameters to use if I did.
I have tried to re-export the keys but it says the file already exists even if I change the name to keys2.json.
I don't understand why this is so difficult. I know I am so close.