I think you're pretty close to how it actually works. I'll preface my explanation by saying that I'm doing this off the top of my head.
So you understand that the blockchain is a ledger, aka a record of the total history of a certain state. In the case of regular blockchains, the state that the ledger keeps track of is the amount of money in each wallet. It is a particular state in a particular wallet that forms the basic building block here. Now: "wallet" is a bit of a constrained term, as I tried to explain with my Ethereum explainer, because your "wallet" can also hold other states. "Account" is a better term, imo.
You can totally put the text "I AM THE LORD OF CRYPTO" on the blockchain if you want to. It would be a state that would be associated with your account. To associate a state with an account, you need to perform a change (from nothing to something). Those state changes are done by what are called "transactions". Again, terminology is a bit crappy, because "state changing function" is what's actually happening. But since it requires effort, you pay a small amount of money (in the form of gas) to get your state etched into the blockchain forever.
The Ethereum network (the combined set of all computers, aka nodes, that solve the sudokus) all then perform the state change that you have requested and have paid them for. The Ethereum protocol is the meta-code that allows or disallows your state changing functions. In the case of a regular wallet with Eth in it, the protocol for example has the rule that you can't spend more than you have. In the case of your self-absorbed text, there are no rules as to what to do with that text unless you specify so. For example, you can define it as "text that only I can change", just like Eth is money only you can access. (And by "you", I mean the person holding the account private key.)
Now here's the cool part: you can write your own bit of protocol that is understood by the Ethereum network. THIS is what the nerds call "smart contracts". So if you write your application (with your own logic and variables and functions) in the Ethereum programming/protocol language, everyone in the network and everyone connected to the Ethereum network can use your application. Your application code is saved on the blockchain as a very long piece of text. It has to be, because that makes it possible for every computer in the network to read, parse and execute the application. And the blockchain can also act as a database for the variables (and even files) for that application.
Does that make some sense?