First, it can't be “have been put on hold”. It would have to be “has been put on hold”, because the subject is “the repair …”, which is singular.
It is also possible to say “the repairs … have been put on hold”. The meaning is the same. Repair can either be a countable noun meaning a specific piece of work, or an uncountable noun, meaning the whole set of repairs. But the verb and the subject need to be consistent.
The sentences with “has been” and “had been” are both grammatical. They have different meanings. With “has been”, a present perfect, the sentence means that the repair was put on hold in the past, and is still on hold now. This implies that the repair hasn't (re)started. With “had been”, a past perfect, the sentence means that the repair was put on hold in the past, and stopped being put on hold in the past. This requires some past event in the context: had been is relative to a past event, and the sentence you quote does not have any suitable past event. This doesn't necessarily imply that the repairs have started, but it implies that a decision has been taken to start the repairs: the repairs had been put on hold, then something happened so that they are no longer on hold. Another possible tense would be a simple past, “was put on hold”. This would designate a specific date in the past when the decision was taken. Here are some example contexts (which I made up) for each tense.
The repair began in 2009, but was put on hold in 2011 because of a lack of financial support. Thanks to new funding, it restarted in 2017.
The repair began in 2009, but it has been put on hold because of a lack of financial support. The council has voted to include funding for the repair in next year's budget.
The building had to be evacuated last week due to a risk that the roof would collapse. Repairs began in 2009, but they had been put on hold because of a lack of financial support. The council has decided that the repair will restart in 2018.
Looking around, here's the original context.
Old City Museum in Ostrava, Czech Republic, will undergo a major refurbishment beginning 1 April. The site houses the area’s largest collection of seventeenth- and eighteenth-century paintings. The repair of the 300-year-old building began nearly a decade ago but had been put on hold because of a lack of financial support. Thanks to funds from the Czech Architectural Preservation Society and significant private donations to the museum, the project can now be completed.
The paragraph is indeed awkward because there is no point of reference for “had been put on hold”. However, “has been put on hold” wouldn't work either, because it implies that the repair is still on hold. This would be ok if there had merely been a decision to allocate some budget, but here there is an actual decision to start work, so it's awkward to say that the repair is still on hold. That's why the text uses “had been put on hold”. The past perfect is relative to the implicit past event which is the grant of funds from the Czech Architectural Preservation Society. I think (but I'm not completely sure, and I'm not a native English speaker) that the most natural phrasing would be
The repair of the 300-year-old building began nearly a decade ago but then was put on hold because of a lack of financial support.
The simple past works here because it refers to a specific event in the past, which happened at the time given by “then”. The specific event is when the museum administration decided to suspend the repair due to a lack of funding.