The client is selling courses where they can have a maximum of 25 delegates. So I create the Course A and allocate as 25 available. Because they offer the choice of 1 course at a fixed price, 2 courses at a discount and 3 courses at bigger discount. Then we may have people ordering one of the 25 places so we have to make sure the course does not exceed 25 people. The only way I could see that working was if the course was used as an option, rather like your PC demo.
Setting the "Maximum quantity per order" option of your product to 3 can be a solution. if you really have have to manage the stock of different courses regarding their type(3), locations(4), and times(..), you'll have to use characteristics, but I don't know if your server will be able to handle that number of variants.