For me, i do not think bitcoin can replace fiat totally, because when their are larger transactions to be processed, it takes hours or even a day, except you have to pay Higher fees to process your transaction.
Bitcoin doesn't need to replace fiat wholly to be considered a currency, even if only a small number of people use it, it's still a currency. Todays transaction fees don't stop Bitcoin from being a currency, and we don't know just how high they will be in the future, since it depends on Bitcoin's popularity. But even then we have the Lightning Network which tackles scalability, so Bitcoin can easily be used by millions of people. And being a currency or a store of value don't contradict each other, Bitcoin can be both.