I don't know Josh at all, so I don't know how difficult he is to deal with, but if what he said is true about ADD/you constantly changing dates (by the sounds of it without so much as a courtesy call) or losing details repeatedly, then ADD/you have no right at all to demand an apology before giving him what he has already paid for - he has every right to be pissed off, and he was obviously getting nowhere without his father stepping in. It's simple customer service. Most clients/customers will understand delays or unexpected difficulties, but communication should be initiated by the business, not the customer.
My comments are based around similar past experiences of others dicking me around, and it's only when you threaten to take your business elsewhere or legal action that progress is miraculously made (if you're lucky), and then YOU are made out to be the bad guy.