Since Singapore was a transit point and not the destination/stopover, the airline had the right to reroute
How much was the ticket ( I assume r/t) - assuming that SIN-BKK was in 1st class, then pretty much 75% of the one way journey cost should be reimbursed ( minus taxes )
That there may have been 1st class available on other routes doesn't seem to matter under EC261 - there seems to be no obligation to offer such a rerouting vs downgrading
If you arrived > 2 hours after scheduled arrival time into Bangkok, may also be entitled to EUR600 compensation for the delay ( depending on reason of cancellation )
What expenses were incurred that have been refused ?
write back to BA stating that it is liable for reimbursement , how much is due and and give 7 days to pay or that you will initiate legal action