Hi,
What you could do is look at the ALU TTL chips and see what you can get from the data sheet. It's possible to use gates to do this, but
you'll need to look at how it is done and those chips might help. Of course if you use those chips directly that's even easier.
One ALU chip part number is 74181.
Another possibility is to use 1 bit adders after taking the 2's complement of the number. One part number is 74183 but you could make your own.
Still yet another possibility is to use a method sometimes called the 'tare' method. This involves a set of pre-settable up/down counters where you load the number to be subtracted from into the counters (minuend) first, then pulse 'down' the entire count of the number to be subtracted. If another set of counters is used to store the subtrahend, the first set can be pulsed while the second set is also pulsed and when the second set gets to zero stop the pulsing and extract the result from the first set.
Using a high frequency this can be fast, but it will of course be slower for a large number of BCD digits.
For example, if you want to subtract '8' from '9' you load the first counter with '9' and the second counter with '8'. Then, start pulsing 'down' both counters until the second counter reaches zero. At that point the first counter will contain '1', the result.