The Princess Royal, 74, recycled a dress last worn in her 40s for a charity dinner held at the Palace of Holyrood House.