As you know the article of Schatz is der.
Correct. The grammatical gender of "Schatz" is masculine.
My problem is this sentence, du bist mein schatz.
As an aside, this should be: "Du bist mein Schatz." Nouns and the first word in a sentence always start with a capital letter in German.
I reckon that if I'd like to address a male, du bist mein schatz is ok
Correct - again, it should be written "Du bist mein Schatz."
but if I address a female it should be du bist meine schätze.
Incorrect: If you address a female, the correct sentence to use would be the same as for a male addressee, "Du bist mein Schatz."
The reason is that the grammatical gender of a word and the biological gender of the lifeform described by the word do not need to match. They can be the same, or they can be totally different.
What you may have seen in use is the form "die Schätze" - but this is not a female form, it is the plural of the word. As the definite plural article in German happens to be "die", just like the definite singular article for feminine grammatical gender, some sentences may indeed be ambiguous if you do not know the forms of the word, but there is no singular form of "Schatz" that reads "Schätze".
To underline this with concrete examples showcasing the correct usage:
- "Thomas, du bist mein Schatz."
- "Klara, du bist mein Schatz."
- "Thomas und Wilhelm, ihr seid meine Schätze."
- "Klara und Claudia, ihr seid meine Schätze."
(Thomas and Wilhelm are male given names, Klara and Claudia are female given names.)