Hi, there are a few potential reasons here. Although I spend most of my time coding in Tact (https://tact-lang.org/), the process is nearly the same.
Primarily, it depends on your smart contract code design. But first and foremost, you need to deploy the contract code to the TVM, then trigger the initial parameter settings. This is essential, no matter what.
It seems like you've deployed your contract code and data, but haven't successfully initialized the contract on the blockchain. That's why you're encountering problems. Therefore, you should check your code and resend it with the correct TL-B structure.
When you create a smart contract on TON (such as a wallet), its address is pre-calculated, even before being deployed. You can start sending it money and messages, and if the sent messages are non-bounceable, the balance of the account on-chain will be increased. In this case, you will see the account is still uninitialized and not activated, but it has a positive TON balance.
To activate it, you have to deploy the smart contract. If this is a wallet smart contract, it will automatically get deployed on first transaction that you send from your wallet.