In this article, we propose a bilateral peer-topeer (P2P) energy trading scheme under single-contract and multi-contract market setups, both as an assignment game, a special class of coalitional games. The proposed market formulation allows for efficient computation of a market equilibrium while keeping the desired economic properties offered by the coalitional games. Furthermore, our market model allows buyers to have heterogeneous preferences (product differentiation) over the energy sellers, which can be economic, social, or environmental. To address the problem of scalability in coalitional games, we design a novel distributed negotiation mechanism that utilizes the geometric structure of the equilibrium solution to improve the convergence speed. Our algorithm enables market participants (prosumers) to reach a consensus on a set of "stable" and "fair" bilateral contracts which encourages prosumer participation. The negotiation process is executed with virtually minimal information requirements on a time-varying communication network that in turn preserves privacy. We use operator-theoretic tools to rigorously prove its convergence. Numerical simulations illustrate the benefits of our negotiation protocol and show that the average execution time of a negotiation step is much faster than the benchmark.