Here is the answer to your problems:
web3.eth.defaultAccount is deprecated in modern dapp browsers and that's why you get missing from property error. You can read more how to solve this here.
Method eth_sendTransaction is not supported by the Infura provider.
Why your reading methods are working and the transfer method is not? Because for reading the ...
Because all Erc20 tokens have same rules, you can create your own ERC20 token. I have published an article to explain it in step by step tutorial. you can find it here:
Yes, with truffle console : truffle console --network ropsten --verbose-rpc.
You can then interact with the smart contract using the truffle API : https://www.trufflesuite.com/docs/truffle/getting-started/interacting-with-your-contracts.
Use a different testnet! At the time of this writing, the latest blocks in each testnet had a block gas limit of:
Rinkeby: 10 million (see block)
Kovan: 12.5 million (see block)
Goerli: 8 million (see block)
Otherwise you can also always try and reduce the contract size, see here.
Could you share your contract code so we can try to see what's causing the high deployment cost?
There may or may not be an easy solution to this problem. You should check how much gas is being spent on the size of your compiled contract code, and how much is being spent on executing the contructor function.
Try to reduce the size of your contract by: