Where'd I screw up?
You need to define the currency text with an action 4, which should look like this:
-1 * 0 04 48 FF 01 00 DC "Simoleans" 00
Also, your action 0 is missing a few elements; <num-props> (01, since you only want to change 1 property), <num-info> (01, since you want to change the properties of 1 currency), and <id> which is the id of the currency you want to modify/overwrite. The id can be any value between 00 and 21 (hex), but for the sake of this example let's say 04 which will replace Japanese Yen. Property 0A refers to the above action 4, so your action 0 will look like this:
-1 * 0 00 08 01 01 04 0A 00 DC
That should do what you're trying to do.
Before you get too excited, you should test how much of the NewGRF currency stuff actually works.
Good call. I coded a few currency grfs for TTDP many years ago, and though they do work in OTTD (at least ostensibly) I thought I'd have a proper look to see what they're doing.
Biggest problem is that property 0B (currency multiplier) doesn't seem to work properly. Setting this property to FF FF FF FF (the largest possible value) should in theory give a multiplier of £1 x 4,294,967.295; this works exactly so in TTDP, but in OTTD the result is actually £1 x 35,127 which is significantly lower. This wouldn't be so bad if OTTD was scaling these figures or if there was some logic to them, but my tests have been somewhat erratic. For example, setting property 0B to 55 55 55 55 gives a higher multiplier of £1 x 55,399! Unless I can establish a pattern or at least nail down some usable values this looks pretty broken to me.
I can confirm that multipliers lower than 1 won't work in OTTD. Setting property 0B to 01 00 00 00 (the lowest possible value) should result in a multiplier of £1 x 0.001; again, this works fine in TTDP, but in OTTD any multiplier lower than 1 will just make the value of everything appear as zero, which isn't helpful.