Naming of [Pt(py)4][PtCl4]
Py and Cl both ligands are monodentate . Therefore, the coordination number of Pt in both the cases are 4 and Pt in general shows +2 oxidation state for 4 coordination number. Again py is neutral ligand whereas Cl is anionic (-1). So, $\ce{[Pt(py)4]^2+}$ is positively charged and $\ce{[PtCl4]^2-}$ is negatively charged. In IUPAC nomenclature, for a coordination complex, the name of cation is written first and of anion at end (cation or anion may be simple or any coordination entity). Therefore the second name, that you told can't be accepted.

Now , the prefixes bis, tris, tetrakis are used-


When the name of the ligand is lengthy or complicated (polysyllabic or multiplicative prefixes are already present in the name of the ligand)
In cases of organic ligand.
In all other cases where using bi, tri, tetra, ... creates ambiguity because in that case a single name may indicate more than one compound .


In case of py first it is an organic ligand and despite that if you use bi/tri/tetra that may indicate a different ligand (for example bipyridine and pyridine are two different ligands) . So, the prefix tetrakis will be used here.