Hi,
Thank you for contacting us and I'd be happy to assist.
1. WordPress Title:
It is something that is related to the database logic, that is how information/data is saved for each post/page.
In the context of WordPress posts and pages, the "title" has the same importance as the "Names" have in human society. It helps in identifying in a meaningful way, what a particular post or page is about and what content the reader/visitor can expect from it.
It won't be wrong to think that the "title" is the most prominent and important piece of information ( after the content itself ) that is stored for a post/page.
The other secondary elements like taxonomies and custom fields come in useful when we need to store some additional information items with the post/pages, but, they don't really are a substitute for a "title".
If the use of "title" is skipped in favor of custom field(s) then the search will be affected because WordPress default search only looks through titles and content/body, but not custom fields.
Note: To extend the default search to also cover custom fields, you'll need to include the third-party plugin "Relevanssi":
https://toolset.com/course-lesson/searching-texts-in-custom-fields-with-toolset-and-relevanssi/
2. Toolset Heading:
The Toolset "Heading" block is something that is related to the presentation layer only.
From the previous point, we established that the we store the most important and defining information in the "title" field. When we need to show that title in a heading format in a template for readers/visitors, we can choose to use the Toolset "Heading" block. This means that the "Heading" block is a tool that can be used to show the WordPress title saved for the current post/page.
Alternatively, if you don't want to show the title as a heading, you can also use the "Single Field" block instead, to show that post/page title as a simple text.
And it is also important to note that the use of the Toolset "Heading" block is not limited to showing the post/page title. It can also be used to show a static text as a heading that is not coming from any dynamic/database value or we can even link it to a different dynamic value, for example, a custom field.
I hope this explanation helps and please let me know if you need any further assistance around this.
regards,
Waqar